Flutter에서 json 요청을 보내고 json 데이터를 분석합니다

Flutter에서 json 요청을 보내고 json 데이터를 분석합니다
요 며칠 Flutter를 봤는데 기능이 비교적 강하지만 관련 자료가 비교적 적다. 인터넷에서 json 데이터를 보내지 않고 json 데이터만 해석한다.이에 필요한 학우들에게 기록하여 자료를 찾는 데 구덩이를 밟지 않도록 하겠습니다.텍스트 링크:https://blog.csdn.net/weixin_44259356/article/details/104424424
get 요청 및 Json 확인
gat 요청을 시작하고 되돌아오는 json 데이터를 분석하여 IP 주소를 표시합니다.
import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';

void main() {
     
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
     
  @override
  Widget build(BuildContext context) {
     
    return new MaterialApp(
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
     
  MyHomePage({
     Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
     
  var _ipAddress = 'Unknown';

  _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();
        var data = jsonDecode(json);
        result = data['origin'];
      } else {
     
        result =
            'Error getting IP address:
Http 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; }); } @override Widget build(BuildContext context) { var spacer = new SizedBox(height: 32.0); return new Scaffold( body: new Center( child: new Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ new Text('Your current IP address is:'), new Text('$_ipAddress.'), spacer, new RaisedButton( onPressed: _getIPAddress, child: new Text('Get IP address'), ), ], ), ), ); } }

post Json 요청 시작
상기 코드를 아래와 같이 수정하면 된다
요청 헤더 수정
request.headers.add("Content-Type", "application/json");

json 데이터 증가
  request.add(utf8.encode("\{\"from\"\: \"xxxx\"\,\}"));

url 수정
위의 URL을 json 요청을 받아들일 수 있는 임의의 백엔드 인터페이스로 변경하면 됩니다.
참조 링크
https://flutterchina.club/networking/

좋은 웹페이지 즐겨찾기