1. 程式人生 > 其它 >基於okhttp的安卓端網路程式設計

基於okhttp的安卓端網路程式設計

目錄

一、技術概述

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");

,json為組裝好資料的JSONObject物件,請求頭新增token作為頁面訪問時的身份驗證。
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網路框架不僅使用上方便快捷,而且穩定性和安全性表現好,適合於目前安卓端的網路程式設計。

五、列出參考文獻、參考部落格(標題、作者、連結)

Okhttp3基本使用
【Android】OkHttp3總結與封裝
從 http協議角度解析okhttp