重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Flutter 网络请求报错 Failed host lookup:
创新互联建站成立于2013年,先为康平等服务建站,康平等地企业,进行企业商务咨询服务。为康平企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
一、如果是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
在yaml文件里边添加如下依赖
新建一个network_config.dart文件存放网络配置
ApiResponse是之前定义的公共接口返回实体 Flutter的Json数据解析之FlutterJsonBeanFactory插件
主要是对http异常和业务异常进行处理。
上述封装后,如果业务存在多个请求依赖调用,就需要统一的处理错误。
Dio支持自定义拦截器,继承 Interceptor ,重写 onRequest 和 onResponse 方法就行。
在初始化dio的地方,把拦截器加入dio对象的拦截器集合 dio.interceptors 中就行。
可以通过自定义的拦截器实现,也可以引入 pretty_dio_logger 库。
fastmock 上新建自己的项目,接口配置如下:
发起请求:
效果展示:
参考文章:
dio的使用方式有很多,我就只选出我认为最好用的api方式做下记录,把get成post就是post请求了,网络请求都用的百度的api,实际上的response没有任何意义,所以只要打印出response有值即可。
1.最简单的请求例子,网络请求是异步的所以用async await
2.带有参数的get请求
3.自定义请求头,可定义的请求头dart已经为我们提供了专门的类存了对应的字符,引入以下库,就能使用 HttpHeaders
一般我们请求接收到的数据是json格式,如'accept: application/json',我们就可以这样自定义请求头
4.使用Baseoptions
其他详细参数设置参考如下: