1. 程式人生 > >okhttp簡單介紹

okhttp簡單介紹

Android網路請求庫比較多,常用的HttpURLConnectionvolleyokhttpretrofit等。

Android4.4開始HttpURLConnection底層實現採用的是okhttp

通訊原理圖:

 

主要通過dispatcher不斷從requestQueue中取出請求(Call),根據是否已經快取呼叫cachenetwork這兩類資料獲取介面之一,從記憶體快取或是伺服器取得請求的資料。分為同步和非同步請求,同步請求通過call.execute()直接返回當前的response,而非同步請求會把當前的請求call.enqueue新增(AsyncCall)到請求佇列中,通過回撥

(Callback)的方式來獲取最後結果。

同步方式:

直接呼叫execute()方法,該方法是在子執行緒中完成,必須通過handler來更新UI

 

非同步方式:

通過使用回撥來進行非同步呼叫,然後okHttp的回撥不在主執行緒中,回撥函式依然不能操作UI,只能通過handler來進行。非同步方式Callback獲取最後結果,必須實現onFailureonResponse方法。

 

提取相應頭:

使用header(name,value)可以設定唯一的namevalue,如果已經有值,則舊的將被移除,新增新的,使用addHeader(namevalue)可以新增多值(新增,不移除已有的

)

 

使用Gson解析json響應:

ResponseBody.charStream()使用Content-Type指定的字符集解析響應體,預設是UTF-8