相关文章推荐
霸气的蘑菇  ·  手动部署 ClickOnce ...·  5 月前    · 
小胡子的莴苣  ·  mongodb - ...·  11 月前    · 
调皮的小笼包  ·  JSON利器之Jackson ...·  1 年前    · 
心软的香瓜  ·  使用FastAPI + ...·  1 年前    · 

在实际应用开发中,我们会有像 token、appVersionCode 等等这些每个接口请求都需要传的参数 ,称之为公共请求参数,公共请求参数配置方式总结有三:

  • 在get与post请求时将参数配置进去,也可以通过请求header配置
  • 通过请求header将参数配置进去
  • 通过拦截器将请求参数配置到参数配置中或者是header中
2 dio 配制公共请求参数

那么在这里 dio 的请求中我们可以考虑这样来配制:

  String application = "V 1.2.2";
  int appVersionCode = 122;
  ///[url]网络请求链接 
  ///[data] post 请求时传的json数据
  ///[queryParameters] get请求时传的参数
  void configCommonPar(url,data,Map<String, dynamic> queryParameters){
    ///配制统一参数
    if (data != null) {
      data['application'] = application;
      data['appVersionCode'] = appVersionCode.toString();
    } else if (queryParameters != null) {
      queryParameters['application'] = application;
      queryParameters['appVersionCode'] = appVersionCode.toString();
    } else {
      ///url中有可能拼接着其他参数
      if (url.contains("?")) {
        url += "&application=$application&appVersionCode=$appVersionCode";
      } else {
        url += "?application=$application&appVersionCode=$appVersionCode";
3 dio 配制Content-Type 与请求 header

我们在创建 Dio对象时,会初始化一个 BaseOptions 来创建 Dio

      BaseOptions options = BaseOptions();
      ///请求header的配置
      options.headers["appVersionCode"]=406;
      options.headers["appVersionName"]="V 4.0.6";
      options.contentType="application/json";
      options.method="GET";
      options.connectTimeout=30000;
      ///创建 dio
      Dio dio = new Dio(options);

我们也可以在每次发送 get 、post 等不同的请求时,通过 dio 获取到 默认的 options 然后修改一下

void getRequestFunction2() async {
    ///用户id
    int userId = 3;
    ///创建 dio
    Dio dio = new Dio();
    ///请求地址
    ///传参方式1
    String url = "http://192.168.0.102:8080/getUser/$userId";
    ///在这里修改 contentType
    dio.options.contentType="application/json";
    ///请求header的配置
    dio.options.headers["appVersionCode"]=406;
    dio.options.headers["appVersionName"]="V 4.0.6";
    ///发起get请求
    Response response = await dio.get(url);
  ...

完毕【视频教程 感兴趣的伙伴可以瞅瞅】

题记—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。重要消息网易云【玩转大前端】配套课程EDU配套 教程flutter跨平台开发一点一滴分析系列文章系列文章 在这里了本文章将讲述1.get请求中配置公共参数2.post请求配置公共参数3.请求header配置1 引言在实际应用开发中,我们会有像 token、appVersionCode 等等这些每个接口请求都需要传的参数 ,称之为公共请求参数,公共请求参数配置方式总结有三:在get
Flutter网络请求使用的是DioDio是一个强大易用的dart http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载……. Flutter json数据解析是使用了json_serializable package包。它是一个自动化源代码生成器,可以为我们生成JSON序列化模板。由于序列化代码不再由我们手写和维护,我们将运行时产生JSON序列化异常的风险降至最低。 Flutter网络请求数据并且展示效果图: 数据是使用的聚合数据的API,影讯API合集,大家可以注册个账号,申请使用一下,像这样 在pubs
import 'package:dio/dio.dart'; import 'dart:convert'; import 'package:micro_course/http/ResultCode.dart'; import 'package:micro_course/http/GlobalConfig.dart'; class DioManger{ static DioManger _instance; static 在开发过程中,我们经常会用到网络请求,在flutter框架中,dio框架非常不错,所以今天的文章在dio的基础上搭建一套网络持久化框架,那么在flutter项目中如何搭建一套,高可用性,维护性较高的dio公共请求参数框架呢? 搭建前夕准备 一、基本认知 要持久化那么必然要有存储设备 持久化的数据在app启动后要即使填充到项目中 由于项目中网络请求地址繁多,类型不同,需要持久化的位置不同 二、基于基本认知来找合适的工具&必要点 2.1 持久化的工具: share_pre response = await dio.post(“http/test/upload”, data: formData); //上传多个文件 formData = FormData.fromMap({ “animal”: “dog”, “files”: [ await MultipartFile.fromFile(“assets/data/test1.json”, filename: “test1.json”), await MultipartFile.fromFile(“assets/data/
cookie,session,token这三兄弟真令人头大,安卓里面是,flutter也一样。 但好在dio有定义好的cookie管理库 dio.interceptors.add(CookieManager(CookieJar())); 但是你知道的,有的后台cookie不知道会给你放在哪····而且要是用session和token就没办法了,这次遇到的问题是在 options的cookie属性...
dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等… 我们的网络请求就是在dio的基础上封装的 . 所以要引入dio包. dependencies: dio: ^x.x.x // 请使用pub上的最新版本 HttpUtil * Created by 李卓原 on ... 前阵子有同学反馈Flutter中的http请求无法通过fiddler抓包,作者喜欢使用Charles抓包工具,于是抽时间写了个小demo测试了一下,结论是在手机上设置代理,Charles确实抓不到请求数据包。于是对该问题进行了分析: 确定使用的是http发起的get请求,理论上http协议应该可以被Charles抓到包的,如果没有抓到包,那可能是没有走代理,于是乎通过将笔记本连接的wif...
Flutter Dio 是一个用于进行 HTTP 请求的库。你可以使用 Dio 来发送 GET、POST、PUT、DELETE 等类型的请求,并处理响应数据。 首先,你需要在 `pubspec.yaml` 文件中添加 dio 的依赖: ```yaml dependencies: dio: ^4.0.0 然后,在需要发送 HTTP 请求的地方,你可以创建一个 Dio 的实例,并使用它来发送请求。以下是一个发送 GET 请求的示例: ```dart import 'package:dio/dio.dart'; void main() async { // 创建 Dio 实例 Dio dio = Dio(); try { // 发送 GET 请求 Response response = await dio.get('https://api.example.com/data'); // 处理响应数据 print(response.data); } catch (e) { // 处理异常 print(e); 你可以调用 `dio.get()` 方法来发送 GET 请求,并传入请求的 URL。然后,你可以使用 `response.data` 来获取响应数据。 除了 GET 请求,你还可以使用 `dio.post()`、`dio.put()`、`dio.delete()` 等方法来发送其他类型的请求。你可以在请求中添加参数请求头、请求体等信息。 这只是 Dio 库的基本用法,你还可以通过配置实例来设置超时时间、拦截器等功能。你可以查阅 Dio 的文档以了解更多信息。