仗义的伏特加 · java.lang.NoClassDefFo ...· 2 周前 · |
深情的火车 · 如何在flutter中为文本加下划线-腾讯云 ...· 2 周前 · |
安静的麻辣香锅 · Flutter Text ...· 2 周前 · |
个性的骆驼 · Flutter ...· 2 周前 · |
打篮球的冰棍 · flutter开发实战-webview插件f ...· 2 周前 · |
重情义的打火机 · 2024常州文化旅游节新闻发布会实录· 1 月前 · |
活泼的大葱 · 买天梭小美人机械还是浪琴心月石英? - 知乎· 8 月前 · |
善良的香烟 · 【文章】售价19.98万元!红旗E-QM5 ...· 1 年前 · |
腹黑的书包 · 明日之后2级鱼竿怎么制作 ...· 1 年前 · |
冷静的葫芦 · 如何评价电影《轮到你了 剧场版》? - 知乎· 1 年前 · |
本文章将讲述
1.get请求中配置公共参数
2.post请求配置公共参数
3.请求header配置
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 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);
...
}
完毕
领取专属 10元无门槛券
私享最新 技术干货
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
仗义的伏特加 · java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema_java.lang.classnotfoundexception 2 周前 |
重情义的打火机 · 2024常州文化旅游节新闻发布会实录 1 月前 |
活泼的大葱 · 买天梭小美人机械还是浪琴心月石英? - 知乎 8 月前 |
冷静的葫芦 · 如何评价电影《轮到你了 剧场版》? - 知乎 1 年前 |