本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

本文章将讲述
1.get请求中配置公共参数
2.post请求配置公共参数
3.请求header配置

在实际应用开发中,我们会有像 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);
                            字节Java全能手册火了!多线程/网络/性能调优/框架啥都有
                        
    在这个技术不断更新的年代,跟不上时代变化的速度就会被刷掉,特别是咱们程序员这一群体,技术不断更新的同时也要同时进步,不然长江后浪推前浪,前浪...... 一个程序员从一个什么都不懂的小白在学到有一定的Java基础的时候肯定是要学习更多的技术充实自己,甚至还要往架构师方向靠。但是一个优秀的架构师必须要有扎实的编程功底和丰富的理论知识,不光要能完成架构设计,更要有能力将设计转换为实际的产品。不会写代码、纸上谈兵的“架构师”设计出来的“架构”是靠不住的。
    愿天堂没有BUG(公众号同名)