OkHttp系列文章(四) - OkHttp攔截器原理

前言

OkHttp系列文章
OkHttp系列文章(一) - Java網(wǎng)絡編程基礎
OkHttp系列文章(二) - Http與Https
OkHttp系列文章(三) - OkHttp
OkHttp系列文章(四) - OkHttp攔截器原理
OkHttp系列文章(五) - OkHttp的5個攔截器作用
OkHttp系列文章(六) - OkHttp的5個攔截器圖解分析
OkHttp系列文章(七) - 文件更新下載

1. OkHttp攔截器原理如下圖所示

OkHttp攔截器工作原理.png
分析OkHttp攔截器原理:
第一次請求:

1>:首先是客戶端發(fā)起Request請求,然后經(jīng)過所有的攔截器,比如第一層是達到BridgeInterceptor基礎攔截器,這個攔截器它會添加一些自己的處理,然后到達下一個攔截器;
2>:比如下一個攔截器是CacheInterceptor緩存攔截器,如果當前沒有緩存就又會走到下一個攔截器;
3>:比如下一個攔截器是ConnectInterceptor建立連接攔截器,這個攔截器與服務器進行建立連接,然后返回數(shù)據(jù)一路給上一個攔截器,直到最后返回給客戶端為止;

第二次請求:

1>:當在第二次請求時候,首先客戶端發(fā)起Request請求時,首先到大BridgeInterceptor攔截器,它會添加一些自己的處理,然后達到第二層攔截器;
2>:當?shù)竭_第二層的CacheInterceptor攔截器,發(fā)現(xiàn)有緩存數(shù)據(jù),這個時候就直接走紅色路線部分,在緩存攔截器中就給 客戶端把Response返回了,就不會走下一個ConnectInterceptor攔截器了;
3>:如果自己有自定義的攔截器,可以添加到BridgeInterceptor攔截器上邊,也就是添加到第一個攔截器的位置,這個自定義的攔截器添加的位置完全由自己來定;

自己可以在任何一個地方添加攔截器進行攔截;

以上就是 OkHttp攔截器執(zhí)行原理

2. getResponseWithInterceptorChain() 作用:

把請求Request 變?yōu)? Response;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 本文為本人原創(chuàng),轉載請注明作者和出處。 在上一章我們分析了Okhttp分發(fā)器對同步/異步請求的處理,本章將和大家一...
    業(yè)松閱讀 1,050評論 2 8
  • 簡單的梳理一下五個攔截器的邏輯: RetryAndFollowUpInterceptior BridgeInter...
    Utte閱讀 393評論 0 0
  • 語,即言語,說話,工具也,追求實用價值;文,即文學,文化,人文也,追求藝術價值。工具人文兼顧,實用藝術兼修,不可求...
    旺旺_0dcb閱讀 339評論 1 2
  • 我作為一個運營是在產品上線三個月才開始接手應用市場的。我們上了小米首發(fā)、魅族的專題和新品榜。那個時候帶來的量很大,...
    a5d764c22b0b閱讀 385評論 0 0
  • 今天是除夕夜,家家戶戶忙開啦!除夕這一天下午,我們全家人齊動手,忙著貼春聯(lián)、掛燈籠……過了一會兒春聯(lián)貼好...
    張馨月caf7閱讀 203評論 0 0

友情鏈接更多精彩內容