重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

flutter网络控制,flutter tcp client

Flutter的Dio网络请求封装

在yaml文件里边添加如下依赖

站在用户的角度思考问题,与客户深入沟通,找到虹口网站设计与虹口网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖虹口地区。

新建一个network_config.dart文件存放网络配置

ApiResponse是之前定义的公共接口返回实体 Flutter的Json数据解析之FlutterJsonBeanFactory插件

主要是对http异常和业务异常进行处理。

上述封装后,如果业务存在多个请求依赖调用,就需要统一的处理错误。

Dio支持自定义拦截器,继承 Interceptor ,重写 onRequest 和 onResponse 方法就行。

在初始化dio的地方,把拦截器加入dio对象的拦截器集合 dio.interceptors 中就行。

可以通过自定义的拦截器实现,也可以引入 pretty_dio_logger 库。

fastmock 上新建自己的项目,接口配置如下:

发起请求:

效果展示:

参考文章:

Flutter Android网络权限配置

在Android真机调试时会出现没有网络权限的情况;

在AndroidManifest.xml 中添加

AndroidManifest.xml的路径 android/app/src/main/AndroidManifest.xml 通常manifest的 /application 后添加

示例:

Bad state: Insecure HTTP is not allowed by platform

AndroidManifest.xml 路径为:android/app/src/main/AndroidManifest.xml)

1.2 添加的属性为

示例:

Flutter 之网络请求Dio, FormData, 表单网络请求, x-www-form-urlencoded

网络请求, 先想到的是dart官方维护的 http 库. 由于我们项目组网络请求都采用的表单结构, http 貌似不支持表单格式的网络请求; 后来查看 dio 库, 发现支持 FormData , 完美解决!

官方表单网络请求示例:

比葫芦画瓢, 尝试下

Flutter 网络请求报错 Failed host lookup:

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

Flutter 网络请求 Dio 拦截器详解

昔日的小王凭借这他的小心谨慎和借助漂亮能干的女友 Dio 的辅助,终于干下了一番事业,成为中华大地响当当的人物,小王也变成老王。如今,老王已经年近花甲,看似迈上了人生巅峰,却也遇到了人生的烦恼——那就是他的儿子,新的小王。

小王和他爹当年的小心谨慎不同,小王自海外留学回来,也不愿意接手老王的事业。反而迷恋起了互联网,玩游戏、微博喷人、撩网红等等。前两项倒还好,但是后一项,让老王心烦得很。这网红哪能随便撩的,万一弄出许多小小王来,多大家业都不够分的啊!

关键时刻,还是老王的媳妇,曾经被 金屋藏娇 的Dio 想出了新的招术,再次让老王佩服不已。老王媳妇Dio给小王搞了个拦截器,只要小王要在互联网做什么,都会被她给先拦截下来,然后她再根据小王要做的事情决定是不是要替他发出去;或者是收到什么消息的时候,也会先看一遍,没问题再给小王看。而且,最为关键的是,小王对这一切压根都不知道!

老王媳妇一开始是这么干的,小王在互联网有什么新的动向直接向老王汇报。

这下小王在互联网就完全被监视了——而且他压根不知道!只是,每次他说要钱的时候,老王不再随便给了!

但这个时候,小王还能在网上撩,毕竟上网在这个时代是不怎么要钱的。

老王媳妇 Dio 一看这种方式不行,就又心生一计,每次小王聊网红的时候,直接狠心拒绝!

小王这下子懵圈了,难道是他的那些“土味情话”已经失效了?每次发出去消息都遭受到了无情的打击,让他心灰意冷。渐渐地他就淡出了互联网,至于现在在干什么,谁也不知道。感觉又像是当初老王金屋藏娇一样,现在的小王也逐渐被隐藏了起来。从此,互联网只剩下小王和各个网红的传说。

借着老王和小王的故事,我们讲述了 Dio 的封装和 Dio 的拦截器。其中拦截器可以应用于很多实际场景:

注意,Dio 的实例可以同时添加多个拦截器,以便处理不同的情况。

flutter 网络请求dio的简单使用以及请求头参数的自定义

dio的使用方式有很多,我就只选出我认为最好用的api方式做下记录,把get成post就是post请求了,网络请求都用的百度的api,实际上的response没有任何意义,所以只要打印出response有值即可。

1.最简单的请求例子,网络请求是异步的所以用async await

2.带有参数的get请求

3.自定义请求头,可定义的请求头dart已经为我们提供了专门的类存了对应的字符,引入以下库,就能使用 HttpHeaders

一般我们请求接收到的数据是json格式,如'accept: application/json',我们就可以这样自定义请求头

4.使用Baseoptions

其他详细参数设置参考如下:


标题名称:flutter网络控制,flutter tcp client
网站URL:http://cqcxhl.com/article/hoohes.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP