重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最近在做公司工业互联网的一个项目 之前做了一个ipad 版本的 在使用dio网络请求框架的时候发现请求登录的时候后台一直报签名错误问题 检查了几遍写的签名方法没有发现错误 后面仔细查了下 是服务器不能识别我传的数据。。。
创新互联建站专注于博罗网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供博罗营销型网站建设,博罗网站制作、博罗网页设计、博罗网站官网定制、小程序定制开发服务,打造博罗网络公司原创品牌,更为您提供博罗网站排名全网营销落地服务。
如果content-type是form-data 我们需要通过FormData类来构建数据,否则服务器将无法识别
同时需要传入一个Option指明content-type,而form-data的content-type完整类型表述为:multipart/form-data
主要我是个新手啊
查看源码
headers里面并有multipart/form-data 这个类型啊 讲道理这个是常用的contentType啊 应该要列出来才对啊
咋整?
自己设置。。。。
后台就可以正常接收表单参数了
dio 是一个国产巨佬写的一个Flutter的网络请求库,写这篇的文章的时候更新到3.x版本了。这里是他的 官方中文 使用链接: dio
按照原作者所说:
我这里这个时候的是一个3.0.9版本,这里的 ^ 符号,表示3.多的库比如说3.1.1啥的,也能更新下来。
dio 的原作者给了我们一个简单的例子
我们基础的使用,请求一个URL,这里就直接是 Dio().get(".****.com") 。这样就可以通过get方式来请求我们的链接。
在我们项目中,我们当然不能直接使用 Dio().get(".****.com") 这样的方法,那样的话如果以后我们要更换网络请求的库的话,我们要修改的地方,就会非常的多。类似的问题,曾经在iOS开发的历史上出现过一次。最初的时候iOS的开发者大多使用的是一个叫 ASI 的库,但是在过了几年的时候,这个库不在维护了。这时候,我们就会去找一个新的网络库来代替他。当时如果我们有500个文件中都直接使用 ASI ,我们就需要改动500个地方。这样的体力和眼力消耗,实在是太惊人了。所以,我们一般会自己创建一个专门的 网络管理 的类 NetworkManager 。在 NetworkManager 里,我们把调用方法抽取出一个基础的方法,使用的时候,基于这个基础的方法来调用。这样,我们就能很方便的去进去使用和维护。
这个时候我们就可以使用我们创建的类来直接调用我们的方法了。
这样,我们的 dio 的初步使用就完成了。下一篇文章来写 dio 的进阶使用。
网络请求, 先想到的是dart官方维护的 http 库. 由于我们项目组网络请求都采用的表单结构, http 貌似不支持表单格式的网络请求; 后来查看 dio 库, 发现支持 FormData , 完美解决!
官方表单网络请求示例:
比葫芦画瓢, 尝试下
在Android中会在基础类中监听手机的网络状态,并作出相应的提示,在Flutter 中也提供了相应的package,但是略有不同;
Flutter 网络请求报错 Failed host lookup:
一、如果是iOS真机调试报错
1.检查iOS是否开启网络权限(在设置中检查一下),(如果HTTP,在info中 添加 ATS)
二、如果是Android模拟器或真机调试报错
在debug和release目录中的AndroidManifest.xml中加上
uses-permission android:name="android.permission.INTERNET"/
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/
如果还是不行,执行
flutter clean