flutter dio 请求方式为form-data遇到的问题

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

在网络中请求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设置一下传参。
在这里插入图片描述

通过以上两处位置的设置,我们就可以将数据正常的从后台请求下来了。

更多:

如何写一个自己的小程序并上线

Github搭建个人博客(2019最新版,亲测)

qq加油小程序
徐代龙的技术博客

关注下面公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。

在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序
在这里插入图片描述

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值