美文网首页
日更(三十六)-flutter-网络请求

日更(三十六)-flutter-网络请求

作者: Jlanglang | 来源:发表于2019-02-05 22:04 被阅读0次

    瞎扯

    写app离不开网络请求,没有网络请求没有灵魂
    不多bb

    HttpClient

    import 'dart:io';
    
    var httpClient = new HttpClient();
    
    getData() async {
      var httpClient = new HttpClient();
      var uri = new Uri.http(
          'example.com', '/path1/path2', {'param1': '42', 'param2': 'foo'});
      var request = await httpClient.getUrl(uri);
      var response = await request.close();
      var responseBody = await response.transform(UTF8.decoder).join();
    }
    

    上面是官方的例子.

    请求来说很简单.

    但是有两个东西是新的.
    async await


    async

    很简单,异步的意思.相当于new了一个线程

    await

    这个呢,可以理解为携程

    也就是等待这一行走完返回结果的意思.

    所以在这个方法里面,每一步都是很直观的写出来的,不用担心异步回调的问题.

    是不是很简单呢.

     _getIPAddress() async {
        var url = 'https://httpbin.org/ip';// 请求地址
        var httpClient = new HttpClient();
    
        String result;
        try { //可能出错
          var request = await httpClient.getUrl(Uri.parse(url));//发起请求
          var response = await request.close();//关闭流,得到结果
          if (response.statusCode == HttpStatus.OK) {
            var json = await response.transform(UTF8.decoder).join();//转换为json
            var data = JSON.decode(json);//json解析
            result = data['origin']; //得到对象
          } else {
            result =
                'Error getting IP address:\nHttp status ${response.statusCode}'; //接口出错
          }
        } catch (exception) {
          result = 'Failed getting IP address';//产生异常
        }
    
        // If the widget was removed from the tree while the message was in flight,
        // we want to discard the reply rather than calling setState to update our
        // non-existent appearance.
        if (!mounted) return;//生命周期控制
    
        setState(() { //更新UI
          _ipAddress = result;
        });
      }
    

    交流群:493180098,这是个很少吹水,交流学习的群.
    APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.

    相关文章

      网友评论

          本文标题:日更(三十六)-flutter-网络请求

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