5 4 月 2026, 周日

dio库请求方法

属性 类型 描述
get Future  http GET 请求的便捷方法,它是 [dio.fetch(RequestOptions)] 的别名。
getUri Future  http GET 请求的便捷方法,它是 [dio.fetch(RequestOptions)] 的别名。
post Future  发出http POST 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
postUri Future  发出http POST 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
put Future  发出http PUT请求的方便方法,它是[dio.fetch(RequestOptions)]的别名。
putUri Future  发出http PUT请求的方便方法,它是[dio.fetch(RequestOptions)]的别名。
head Future  发起 http HEAD 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
headUri Future  发起 http HEAD 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
delete Future  发出 http DELETE 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
deleteUri Future  发出 http DELETE 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
patch Future  制作http PATCH 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
patchUri Future  制作http PATCH 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
download Future 下载的文件
fetch Future  要求

get请求参数

属性 类型 描述
path String 路径<url链接>
queryParameters Map<String, dynamic> 查询参数
options Options 选项《每个请求都可以传递一个 [Options] 对象,该对象将与 [Dio.options] 合并》
cancelToken CancelToken 取消令牌《您可以使用取消令牌取消请求。一个令牌可以与不同的请求共享。当调用令牌的 [cancel] 方法时,将取消所有带有此令牌的请求。》
onReceiveProgress ProgressCallback 接收进度《回调监听发送接收数据的进度。 [count] 是已发送接收的字节长度。 [total] 是响应请求正文的内容长度。 1.接收数据时:[total]为请求体长度。 2.接收数据时:如果事先不知道响应体的大小,[total]将为-1,例如:响应数据用gzip压缩或没有content-length header。》

get请求实例

Response response;
var dio = Dio();
var url='https://zywi.cn';
response = await dio.get(url);
print(response.data.toString());//打印请求内容

Options 参数

属性 类型 描述
method String 方法
sendTimeout int 发送超时
receiveTimeout int 接收超时
extra Map<String, dynamic> 额外的
headers Map<String, dynamic> 标题,头部信息
responseType ResponseType 响应类型《[responseType] 表示服务器将响应的数据类型,[ResponseType] 中定义的选项为jsonstreamplain。默认值为json,当响应的内容类型为’applicationjson’时,dio会自动将响应字符串解析为json对象。如果要接收二进制字节的响应数据,例如下载图像,请使用 stream。如果你想用 String 接收响应数据,请使用 plain。如果要接收原始字节的响应数据,也就是说[Response.data]的类型为List,使用bytes
contentType String 内容类型《请求内容类型。默认值为 [ContentType.json]。如果你想用’applicationx-www-form-urlencoded’编码请求体,你可以设置ContentType.parse('applicationx-www-form-urlencoded'),[Dio]会自动编码请求体。》
validateStatus ValidateStatus 验证状态
receiveDataWhenStatusError bool 状态错误时接收数据
followRedirects bool 跟随重定向
maxRedirects int 最大重定向
requestEncoder RequestEncoder 请求编码器
responseDecoder ResponseDecoder 最大重定向
listFormat Function(int count, int total) 列表格式

Options实例

以流的方式接收响应数据:

Response<ResponseBody> rs;
rs = await Dio().get<ResponseBody>(url,
  options: Options(responseType: ResponseType.stream),  //设置接收类型为stream
);
print(rs.data.stream); //响应流

以二进制数组的方式接收响应数据:

Response<List<int>> rs 
rs = await Dio().get<List<int>>(url,
 options: Options(responseType: ResponseType.bytes), //设置接收类型为二进制数组
);
print(rs.data); // 二进制数组

post请求参数

属性 类型 描述
path string 网站链接
data 请求参数
queryParameters Map<String, dynamic>
Options Options 选项
cancelToken CancelToken 取消令牌
onSendProgress ProgressCallback 发送进度
onReceiveProgress ProgressCallback 接收进度

post请求实例

response = await dio.post('/test', data: {'id': 12, 'name': 'wendu'});//传入json类型,Options默认为json类型

FormData<表单> 实例

发送 FormData 表单请求

var formData = FormData.fromMap({
  'name': 'wendux',
  'age': 25,
});
var response = await dio.post('/info', data: formData);//传入表单类型

通过FormData上传多个文件

var formData = FormData.fromMap({
  'name': 'wendux',
  'age': 25,
  'file': await MultipartFile.fromFile('./text.txt', filename: 'upload.txt'),
  'files': [
    await MultipartFile.fromFile('./text1.txt', filename: 'text1.txt'),
    await MultipartFile.fromFile('./text2.txt', filename: 'text2.txt'),
  ]
});
var response = await dio.post('/info', data: formData);
Avatar photo

sion932