本文首发于公众号「刘望舒」
ReactNative入门系列
React Native组件
Flutter基础系列
前言
在Android开发中如果我们想要请求网络,可以使用HttpClent、HttpURLConnection,但在项目中一般都会使用OkHttp和Retrofit。在Flutter也是如此,系统提供了HttpClient,但在项目中一般会使用第三方库,比如http和Dio,如果你想找到更多的第三库,可以在pub.dartlang.org/ 上查找想要的库。本篇文章以Dio为例,另外还会介绍JSON数据解析方面的知识。
1.Dio的使用入门
Dio是一个强大的Dart Http请求库,支持拦截器,全局配置,FormData,请求取消,文件下载,超时等。
添加依赖
在pubspec.yaml中添加依赖。
dependencies:
dio: 2.1.7
官网给出了一个简单的例子:
import 'package:dio/dio.dart';
void getHttp() async {
try {
Response response = await Dio().get("http://liuwangshu.com");
print(response);
} catch (e) {
print(e);
}
}
如果想要发送一个GET请求:
Response response;
response=await dio.get("/test?id=3&name=liuwangshu")
print(response.data.toString());
// 请求参数也可以通过对象传递,上面的代码等同于:
response=await dio.get("/test",data:{
"id":3,"name":"liuwangshu"})
print(response.data.toString());
发送一个POST 请求:
response=await dio.post("/test",data:{
"id":3,"name":"liuwangshu"})
发送一个FormData:
FormData formData = new FormData.from({
"name": "liuwangshu",
"age": 18,
});
response = await dio.post("/info", data: formData);
还有很多示例在github上,地址为:https://github.com/flutterchina/dio。本文的目的不是重复介绍这些示例,而是写一个网络访问的例子带大家快速入门。