關於Okhttp3(二)介紹

2021-10-24 20:22:00 字數 823 閱讀 1424

對於開發者來說優秀的原始碼是最好的學習資源。通過閱讀優質原始碼就相當於和大牛有一次對話。okhttp是支援http和http/2的網路請求框架。自從android4.4開始,google已經開始將原始碼中的httpurlconnection替換為okhttp,而在android6.0之後的sdk中google更是移除了對於httpclient的支援,在專案中用的比較多的retrofit同樣是對okhttp進行再次封裝而來的。okhttp3中提供了builder,很好的使用了建立者設計模式。

http/2支援多路復用

採用連線池減少請求延時

支援gzip壓縮

響應快取

支援websocket

多ip切換(連線失敗並且伺服器有多ip)

支援http2/spdy黑科技

socket自動選擇最好路線,並支援自動重連

擁有自動維護的socket連線池,減少握手次數

擁有佇列執行緒池,輕鬆寫併發

擁有interceptors輕鬆處理請求與響應(比如透明gzip壓縮,logging)

實現基於headers的快取策略

android使用注意申請網路許可權,同時不能在主線程請求。

OkHttp3原始碼解析(二)OkHttp基本流程

首先使用okhttp發起乙個非同步請求,以此先簡單分析okhttp的大致流程。okhttp使用 okhttp流程主要類 功能 使用建造者模式初始化連線池,dispatcher等,為了節約資源推薦使用單列模式建立okhttpclient物件,維護執行緒池比較耗資源。http請求所需的url,請求方法等...

OkHttp3原始碼(二) Request

request 是對http請求報文概念的具體實現 請求報文的結構圖 根據結構圖去閱讀原始碼能很好的理解某些屬性的真實意義。我們看一下原始碼。public final class request 返回設定的url 返回設定的方法 get或post public string method 返回所有的...

OkHttp3原始碼詳解 二 整體流程

1.簡單使用 同步 1 override public response execute throws ioexception 6try finally 14 首先加鎖置標誌位,接著使用分配器的executed方法將call加入到同步佇列中,然後呼叫getresponsewithintercepto...