Flutter的网络请求
一起从0开始学习Flutter!
网络请求在一个APP的分量还是很重的,我们需要熟练的掌握Http请求部分,在Flutter中我们有三种方式,一种是使用Dart给我们提供的HttpClient,第二种是使用第三方的Http请求库,第三种是使用Flutter给我们准备好的Dio。我们主要是看后面两种,第一种比较繁琐一般也不会使用,如果想要了解的可以自行搜索。
HTTP库
这是一个基础的网络请求库,我们在使用之前需要先引入这个类库,在pubspec.yaml中添加:
dependencies:
http: ^0.12.1
添加完成后在右上角会出现一个pub get的按钮,点击后可以帮助我们下载这个类库,然后在我们需要的地方加载该类:
import 'package:http/http.dart';
这样我们的准备工作就算是完成了,接下来我们开始试一下如果使用Http库进行网络请求了:
void doHttpRequest() async{
//里面包含异步请求的时候需要加上asyn关键字
var url = "http://www.baidu.com";
var postResponse = await http.post(url,//使用Post请求,在需要等待的时候加上await关键字
headers: {
"": "", "": ""},//添加请求头
body: {
"": "", "": "",});//添加请求的参数
var response = await http.get(url);//使用get方法,直接请求该地址
if(response.statusCode == 200){
//如果返回的状态码是200则有正确的返回结果
print("response body = ${response.body}");
}else{
//其他的异常状态码
print("请求异常${response.statusCode}");
}
}
这是比较简单进行一次网络请求,我们也可以根据自己的需要进行一定的封装,这里不多介绍,我们主要是使用Flutter给我们准备好的Dio来进行网络请求。
DIO
套用一下dio中的介绍:
dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等
可以做的事情还是挺多的,我们一点点的进行学习吧。
首先我们需要将它引入到我们项目中:
dependencies:
dio: ^3.0