42. OkHttp總結

整個OkHttp功能的實現就在這五個默認的攔截器中,所以先理解攔截器模式的工作機制是先決條件。這五個攔截 器分別爲: 重試攔截器、橋接攔截器、緩存攔截器、連接攔截器、請求服務攔截器。每一個攔截器負責的工作不一 樣,就好像工廠流水線,最終經過這五道工序,就完成了最終的產品。

但是與流水線不同的是,OkHttp中的攔截器每次發起請求都會在交給下一個攔截器之前幹一些事情,在獲得了結 果之後又幹一些事情。整個過程在請求向是順序的,而響應向則是逆序

當用戶發起一個請求後,會由任務分發起 Dispatcher 將請求包裝並交給重試攔截器處理

1、重試攔截器在交出(交給下一個攔截器)之前,負責判斷用戶是否取消了請求;在獲得了結果之後,會根據響應碼
判斷是否需要重定向,如果滿足條件那麼就會重啓執行所有攔截器。

2、橋接攔截器在交出之前,負責將HTTP協議必備的請求頭加入其中(如:Host)並添加一些默認的行爲(如:GZIP 壓縮);在獲得了結果後,調用保存cookie接口並解析GZIP數據。

3、緩存攔截器顧名思義,交出之前讀取並判斷是否使用緩存;獲得結果後判斷是否緩存。

4、連接攔截器在交出之前,負責找到或者新建一個連接,並獲得對應的socket流;在獲得結果後不進行額外的處
理。

5、請求服務器攔截器進行真正的與服務器的通信,向服務器發送數據,解析讀取的響應數據。

在經過了這一系列的流程後,就完成了一次HTTP請求!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章