在网络中请求body中有三种方式:
postbody,query,formdata,
如下图:

现在我们用的恰好是第一种方式。因为首次用这种方式,感觉也是比较坑,后面通过摸索,查看源码发现,需要用fromdata方式包装进去放到请求参数中。
正确的做法应该是如下图:
在初始化中进行数据格式的设置,
static Dio _instance() {
Map<String,dynamic> params = new Map();
if (dio == null) {
BaseOptions option = new BaseOptions(
baseUrl: API_PREFIX,
connectTimeout: CONNECT_TIMEOUT,
receiveTimeout: RECEIVE_TIMEOUT,
headers: params,
contentType: 'multipart/form-data',
responseType: ResponseType.plain);
dio = new Dio(option);
}
dio.options.headers = params;
return dio;
}
开始请求的时候用Map设置一下传参。

通过以上两处位置的设置,我们就可以将数据正常的从后台请求下来了。
更多:
qq加油小程序

关注下面公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。
在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序

本文主要介绍了在Flutter中使用dio库进行formData类型POST请求时遇到的问题及解决方案。通过设置请求参数和正确包装数据,可以成功发送formData请求并从后台获取数据。
3121





