});okhttp是乙個高效能的http庫,支援ip切換、url重試、執行緒管理、快取管理、連線復用等
支援https/http2/websocket(伺服器可主動推送訊息)
內部維護任務佇列執行緒池,友好支援併發訪問
內部維護連線池,支援多路復用,減少連線建立開銷
提供***鏈,實現request和response的分層處理
okio提供超時機制
socket建立支援最佳路由
官網對***的解釋是:***是okhttp中提供的一種強大機制,它可以實現網路監聽、請求以及響應重寫、請求失敗重試等功能。
1 retryandfollowupinterceptor
檢驗返回的 response ,如果出現異常情況,則進行重連操作。
2 bridgeinterceptor 僑接***
設定內容長度,內容編碼
設定gzip壓縮,並在接收到內容後進行解壓。省去了應用層處理資料解壓的麻煩
新增cookie
設定其他報頭,如user-agent,host,keep-alive等,其中keep-alive是實現多路復用的必要步驟
3 cacheinterceptor 快取***
功能: 實現快取功能的***
當網路請求有符合要求的cache時直接返回cache
當伺服器返回內容有改變時更新當前cache
如果當前cache失效,刪除
4 connectinterceptor
開啟乙個面向指定伺服器的連線,並且執行下乙個***
5 callserverinterceptor
這是 okhttp 庫中***鏈的最後乙個***,也是這個***區具體發起請求和獲取響應。
response getresponsewithinterceptorchain() throws ioexception
interceptors.add(new callserverinterceptor(forwebsocket));
interceptor.chain chain = new realinterceptorchain(interceptors, null, null, null, 0,
originalrequest, this, eventlistener, client.connecttimeoutmillis(),
client.readtimeoutmillis(), client.writetimeoutmillis()); //標記1
realconnection connection) throws ioexception
@override public response intercept(interceptor.chain chain) throws ioexception
建立一系列***,並將其放入乙個***list集合中。
建立乙個***鏈realinterceptorchain,並執行***鏈的proceed方法,這個proceed方法的核心是繼續建立下乙個***鏈。
LVM的工作原理和優缺點
lvm logcal volume manager邏輯卷管理器 工作原理 lvm在每個物理卷頭部都維護了乙個metadata,每個metadata中都包含了整個vg volume group 捲組 的資訊,包括每個vg的布局配置,pv physical volume 物理卷 的編號,lv logic...
css sprite原理優缺點及使用
css sprites在國內很多人叫css精靈,是一種網頁應用處理方式。它允許你將乙個頁面涉及到的所有零星都包含到一張大圖中去,這樣一來,當訪問該頁面時,載入的就不會像以前那樣一幅一幅地慢慢顯示出來了。對於當前網路流行的速度而言,不高於200kb的單張的所需載入時間基本是差不多的,所以無需 顧忌這個...
CDN的原理及優缺點
cdn的全稱是content delivery network,即內容分發網路。其目的是通過在現有的internet中增加一層新的cache 快取 層,將 的內容發布到最接近使用者的網路 邊緣 的節點,使使用者可以就近取得所需的內容,提高使用者訪問 的響應速度。從技術上全面解決由於網路頻寬小 使用者...