okhttp簡單介紹
阿新 • • 發佈:2018-12-30
Android網路請求庫比較多,常用的HttpURLConnection、volley、okhttp、retrofit等。
從Android4.4開始HttpURLConnection底層實現採用的是okhttp。
通訊原理圖:
主要通過dispatcher不斷從requestQueue中取出請求(Call),根據是否已經快取呼叫cache或network這兩類資料獲取介面之一,從記憶體快取或是伺服器取得請求的資料。分為同步和非同步請求,同步請求通過call.execute()直接返回當前的response,而非同步請求會把當前的請求call.enqueue新增(AsyncCall)到請求佇列中,通過回撥
同步方式:
直接呼叫execute()方法,該方法是在子執行緒中完成,必須通過handler來更新UI。
非同步方式:
通過使用回撥來進行非同步呼叫,然後okHttp的回撥不在主執行緒中,回撥函式依然不能操作UI,只能通過handler來進行。非同步方式Callback獲取最後結果,必須實現onFailure和onResponse方法。
提取相應頭:
使用header(name,value)可以設定唯一的name、value,如果已經有值,則舊的將被移除,新增新的,使用addHeader(name、value)可以新增多值(新增,不移除已有的
使用Gson解析json響應:
ResponseBody.charStream()使用Content-Type指定的字符集解析響應體,預設是UTF-8。