美文网首页
Flutter 网络

Flutter 网络

作者: 小强开学前 | 来源:发表于2020-11-24 11:43 被阅读0次

    1. 正确的网络请求

    我用的是http库,pub.dev/flutter第一的库。

    Response response;
    try {
      response = await get(url)
          .timeout(Duration(seconds: 5), onTimeout: () {
        return Response("body", 400);
      });
    } catch (e) {
      print(e);
      response = Response("body", 400);
    }
    if (response.statusCode == 200) {
    /// TODO
    } else {
      /// TODO
    }
    

    这样可以处理几乎所有情况

    • try-catch 处理断网或者无网产生的SocketException,避免报错flutter: SocketException: Failed host lookup: 'worldtimeapi.org' (OS Error: nodename nor servname provided, or not known, errno = 8)
    • 设置timeout处理连接超时的情况,返回一个400的Response其实是发现iOS挂上代理后请求不到数据,也不报错一直卡在这而返回的。
    • 最后就是statusCode的处理,这个无需多言。

    相关文章

      网友评论

          本文标题:Flutter 网络

          本文链接:https://www.haomeiwen.com/subject/ijdiiktx.html