题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。

重要消息

  • 网易云【玩转大前端】配套课程

  • EDU配套 教程

  • flutter跨平台开发一点一滴分析系列文章系列文章 在这里了


本文章将讲述
1.使用dio发送基本的get请求
2.使用dio发送get请求的传参方式
3.解析响应json数据

1 引言

dio用来在flutter跨平台开发中访问网络的框架,在使用的时候,我们首先是引入依赖

dependencies:dio: 3.0.9

也可以访问国内pub仓库来查看 dio的最新版本。

一般添加依赖如下所示

dependencies:dio: ^3.0.9

两种写法的差别是 ^在每次 flutter pub get 是会有小版本的自动升级,不添加这个符号就不会有自动小升级

2 Dio get请求
2.1 Dio get 请求无参数
  //get请求无参数void getRequestFunction1() async {///创建Dio对象Dio dio = new Dio();///请求地址 获取用户列表String url = "http://192.168.0.102:8080/getUserList";///发起get请求Response response = await dio.get(url);///响应数据var data = response.data;setState(() {result = data.toString();});}

数据响应结果

{"code": 200,"data": [{"id": 3,"userName": "测试人员","realName": "张三","age": 22}],"message": "请求成功"
}

断点调试如下

2.2 Dio get 请求有参数
  ///get请求有参数///根据用户ID来获取用户信息void getRequestFunction2() async {///用户idint userId =3;///创建 dioDio dio = new Dio();///请求地址///传参方式1String url = "http://192.168.0.102:8080/getUser/$userId";///传参方式2 String url2 = "http://192.168.0.102:8080/getUser?userId=$userId";///传参方式 3String url3 = "http://192.168.0.102:8080/getUser";Map<String,dynamic> map = Map();map["userId"]= userId;///发起get请求Response response = await dio.get(url3,queryParameters: map);///响应数据Map<String,dynamic> data = response.data;/// 将响应数据解析为 UserBeanUserBean userBean = UserBean.fromJson(data);}}

在上述代码中,传参方式1与传参方式2是在请求链接中拼接参数,请求方式3是将参数放在一个 map 中,然后通过 Dio 的queryParameters 来配制参数,上述返回的数据结构为

{"code": 200,"data": {"id": 3,"userName": "测试人员","realName": "张三","age": 22},"message": "请求成功"
}

断点调试

3 json数据解析

对于这里使用到的数据模型 UserBean 对象来说


class UserBean{String userName;String realName;int age;int id;static UserBean fromJson(Map<String,dynamic> rootData){///解析第一层Map<String,dynamic> data = rootData["data"];///解析第二层UserBean userBean = new UserBean();userBean.id = data["id"];userBean.age = data["age"];userBean.userName= data["userName"];userBean.realName = data["realName"];return userBean;}
}

对于 UserBean 中的数据解析如下图所示



完毕

flutter网络dio框架get请求使用总结相关推荐

  1. flutter网络dio框架公共请求参数、请求header使用总结

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. [x1]点击查看提示 [x2]各种系列的教程 一个程序员的修炼日记 本文章将讲述 1.get请求中配置公共参数 2.post请求配置公 ...

  2. Flutter 网络请求框架dio使用详解

    前言 dio是一款Flutter 网络请求框架,在GitHub上目前有超过5.9k个star.由国人(Flutter中文网)开发,所以中文文档非常完善. 这里copy了dio官方的文档,便于自己开发时 ...

  3. flutter网络请求dio的get、post、上传文件、下载文件总结

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频教程在这里 Flutter 从入门实践到开发一个APP之UI基础 ...

  4. Flutter网络请求

    前言 在使用这些请求之前,我们需要知道它所使用的都是Flutter的网络编程模块,对此,我们就需要用到异步编程的技术,尽管我没分享这方面的编程知识,但是网上有很多资源可以借鉴. 在写这篇文章的时候,我 ...

  5. Flutter Dio 网络接口与请求数据

    Flutter Dio 网络接口与请求数据 想了想,感觉没什么好说的,像什么get,post,delete,download啥的,基本插件的使用文档都有,没什么好说的,但是我们实际项目写的时候,可不能 ...

  6. cmd怎么使用post请求’_flutter中dio的post请求方式使用总结

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频教程在这里 Flutter 从入门实践到开发一个APP之UI基础 ...

  7. dio设置自定义post请求_flutter中dio的post请求方式使用总结

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 1 引言 dio用来在flutter跨平台开发中访问网络的框架,在使用的时候,我们首先是引入依赖 depen ...

  8. 06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作

    06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作 上篇文章中,我们只看到了 dio 的使用方式,但并未跟应用关联起来,所以这一篇将 dio 网络请求与应用界面结合起来, ...

  9. Flutter 基于Dio封装网络层

    实现后的效果 case 5:{try{var res = await DioManager().friend_getSelectionTopic(params: {});print('成功msg--- ...

最新文章

  1. 并发编程之多进程编程(python版)
  2. 《Effective C#》某些地方实在是对不起Effective这个词(I)
  3. php 链接excel表格数据,php 怎么把数据导出到excel表格?php 连接 excel表格数据库数据...
  4. Leecode22. 括号生成——Leecode大厂热题100道系列
  5. Flutter Stack 帧布局,层叠堆放
  6. python释放变量内存_python解释器安装,运行python程序的方式及程序运行的步骤,变量与自动的内存管理...
  7. 问题 H: Search Problem (V)
  8. pom.xml中依赖的optionaltrue/optional标签
  9. hibernate Restrictions 用法
  10. struts2的ActionSupport
  11. ansys 命令流学习
  12. 百位女星镂空装秀性感 展现的是赘肉还是性感
  13. 【概率论】Laplace 分布 / Laplace Distribution
  14. 01-基于C++的简易技能系统实现
  15. python 中的 urlencode 编码与 urldecode 解码
  16. 怎么用计算机画ns图,请各位大神帮个忙,画个NS流程图,,急!!!
  17. 路由及路由器工作原理深入解析1:概述
  18. yum.repos.d没有这个文件和目录解决方法
  19. C语言 N个人围圈报数,数到3退出
  20. 业务突破!看 Docker 如何帮助 BCG Gamma 打造安全的软件供应链

热门文章

  1. 性能比拼!超详细的Tengine GEMM矩阵乘法汇编教程
  2. 近期计算机视觉算法竞赛汇总—总奖池超300万人民币
  3. 面试不谈钱,难道要我跟你谈恋爱?真会扯
  4. linux核显驱动与内核冲突,英特尔第十二代核显现身Linux驱动库
  5. 自动生成代码:TensorFlow官方工具TF-Coder已开源
  6. 无人驾驶、自动驾驶与驾驶辅助的区别
  7. 在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:...
  8. android属性动画作用范围,Android 属性动画:这是一篇全面 详细的 属性动画 总结攻略...
  9. TTL怎么计算拉电流和灌电流_带你深入了解灌电流、拉电流与吸电流
  10. linux命令zip打包,linux下zip命令打包与解包