基於okhttp的安卓端網路程式設計
阿新 • • 發佈:2021-06-28
目錄
上述建立建立方法採用預設配置,即預設請求連線超時時間10s,讀寫超時時間10s,連線不成功會自動再次連線。如果需要另外配置,可以通過Builder的方式來自己定義一個OkHttpclient。 ,json為組裝好資料的JSONObject物件,請求頭新增token作為頁面訪問時的身份驗證。
4、獲得Response物件並進行分析處理。
其中響應主體為含status、message、data欄位的json格式的資料。 。
3、修改專案的AndroidManifest.xml,在application中增加
一、技術概述
OkHttp是一款開源的網路框架,封裝了一個高效能的http請求庫。OkHttp支援封裝請求和處理響應,使用OkHttp網路框架可以更方便地處理安卓端的網路請求和前後端的資料互動。
二、技術詳述
1、在app目錄下的build.gradle中新增依賴。
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
這裡使用的是OkHttp 4.x,當然使用OkHttp 3.x也是可以的。
2、建立OkHttpClient物件。
OkHttpClient client = new OkHttpClient();
上述建立建立方法採用預設配置,即預設請求連線超時時間10s,讀寫超時時間10s,連線不成功會自動再次連線。如果需要另外配置,可以通過Builder的方式來自己定義一個OkHttpclient。
public final OkHttpClient = new OkHttpClient.Builder()
.addInterceptor(new HttpLoggingInterceptor())
.cache(new Cache(cacheDir,cacheSize))
.等等配置
.build();
3、構造Request物件並由OkHttpClient提交請求。
其中JSON為Activity類中的常量public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
4、獲得Response物件並進行分析處理。
其中響應主體為含status、message、data欄位的json格式的資料。
流程圖
三、技術使用中遇到的問題和解決過程
問題描述:Android 9.0以上系統,HTTP網路訪問請求受限,HTTPS無影響。
解決過程:1、在專案的res目錄下建立xml目錄,並在xml目錄下新建network_security_config.xml檔案,採用Android7.0+的預設網路配置:
2、修改專案的AndroidManifest.xml,在根目錄下增加<uses-permission android:name="android.permission.INTERNET" />
3、修改專案的AndroidManifest.xml,在application中增加
android:networkSecurityConfig="@xml/network_security_config"
。四、總結
okhttp網路框架不僅使用上方便快捷,而且穩定性和安全性表現好,適合於目前安卓端的網路程式設計。