美文网首页Dart
dart:io使用

dart:io使用

作者: 谁在烽烟彼岸 | 来源:发表于2018-11-28 13:49 被阅读7次

    dart:io

    import 'dart:async';
    import 'dart:io';
    import 'dart:convert';
    
    _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();
            //HttpStatus状态常量都变为小写
          if (response.statusCode == HttpStatus.ok) {
            //在dart2.0之后为大写的UTF8改为小写utf8
            var json = await response.transform(utf8.decoder).join();
            //JSON改为JsonCodec和JsonDecoder
            JsonCodec jsonCodec = new JsonCodec();
            var data = jsonCodec.decode(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(() {
          _ipAddress = result;
        });
      }
    

    相关文章

      网友评论

        本文标题:dart:io使用

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