題記
—— 執劍天涯,從你的點滴積累開始,所及之處,必精益求精,即是折騰每一天。
重要消息
本文章將講述
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<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);
...
}
完畢