Dio
一. 安装
在 pubspec.yaml 文件下添加,版本可以自行选择
dependencies:
dio: ^3.0.9
ctrl+s 保存 或者终端执行 flutter pub get安装依赖
二. Dio APIS
1. BaseOptions 基础配置
// 导入
import 'package:dio/dio.dart';
// 根据自身需求进行配置 不需要的可以不用配置 有默认值
Dio dio=new Dio(BaseOptions(
method:"post", //请求方式
connectTimeout:1000, // 连接超时时间
receiveTimeout:2000, // 接收超时时间
sendTimeout:3000, // 发送超时时间
// 基础Url 后面的请求都是在这个基础上添加
baseUrl:"http://127.0.0.1:4200",
// 在url后面进行拼接传递的参数
queryParameters:{
"name":"zs","age":20},
// 自定义字段
extra:{
"sport":"run"},
// 设置请求头
headers:{
"Content-Type":"application/json"},
// 其实就是请求头中的一部分被单独拎出来
// 用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件
contentType:"text/plain;charset=UTF-8",
// 返回值的类似 ResponseType是个枚举 可以查看其属性 此处设置为json类型
responseType: ResponseType.json,
// 有效状态 status为状态码 可以根据状态码决定是否有效
// 返回true则为有效 可以接收服务器传递的数据
// 返回false则无效 发送错误 不接收服务器数据
validateStatus:(status){
print(status);
return true;
},
// 允许重定向
followRedirects: true,
// 最大重定向次数
maxRedirects : 5,
));
2. 请求类型的别名
// 基本用法为:
dio.get(url).then((value)=>{
// 这里的value为Response类型 待会会详解
})
dio.get() // get请求
dio.post() // post请求
dio.put() // put请求
dio.delete() // delete请求
dio.head() // head请求
dio.put() // put请求
dio.patch() // patch请求
dio.download() // 下载文件
3. RequestOptions 请求配置
这是具体不同的请求中使用的配置,会覆盖基础配置BaseOptions
基本和BaseOptions一致
4. Response 和 DioError
try {
dio.request("/test").then((value) => {
// 这里的value是Response类型 常用属性有
// data 响应数据
// Headers 响应头 Headers类型
// request 请求配置 RequestOptions类型
// isRedirect 是否重定向