》本文章接口来自与本地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)
],
)
],
),
),
);
}
}