flutter dio实现get与post

》本文章接口来自与本地springboot项目

不多哔哔直接上代码:

第一步:添加依赖:

dependencies:

  dio: ^4.0.6

import 'package:dio/dio.dart';
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String _getMsg = '';
  String _postMsg = '';

  /**
  * dio 实现get网络请求
   在异步线程里面编写
  */
  _getData() async {
    //async 开启异步线程
    try {
      Response response = await Dio() 
          .get("http://192.168.2.27:8080/login/log?username=admin");
      print("$response");
      setState(() {
        _getMsg = response.data["msg"];
      });
    } catch (e) {
      print("get请求失败");
    }
  }

/**
 * dio 实现post网络请求
 */

  _postData() async { //
    try {
      // ///创建Dio
      // Dio dio = new Dio();

      ///发送 FormData:
      FormData formData =
          FormData.fromMap({"username": "admin", "password": "123"});

      String url = "http://192.168.2.27:8080/login/reg";
      ///发起 post 
      Response response = await Dio().post(url, data: formData);
      setState(() { //setState 回调
        _postMsg = response.data["msg"];
      });
      print(response.data.toString());
    } catch (e) {
      print("post请求失败");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("DIO网络请求"),
      ),
      body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
            /**
             * get按钮
             */
            Row(
              children: <Widget>[
                RaisedButton(child: Text('get请求'), onPressed: _getData),
                SizedBox(
                  width: 20,
                ),
                Text(_getMsg)
              ],
            ),
            /**
            * post按钮
            */
            Row(
              children: <Widget>[
                RaisedButton(child: Text("post请求"), onPressed: _postData),
                SizedBox(
                  width: 20,
                ),
                Text(_postMsg)
              ],
            )
          ],
        ),
      ),
    );
  }
}

猜你喜欢

转载自blog.csdn.net/f234344435/article/details/126968228