okhttp 易錯誤區

2021-09-13 15:16:13 字數 674 閱讀 6199

本文只考慮okhttp3.0.1版本http1.1協議的原始碼實現(截止2019-3-20日,github上最新版本為3.14.0),雖然版本不同,但是對本文的主題http1.1部分來說,流程變化不大。

1.  寫超時時間writetimeout的含義是:在writetimeout時間內,向網路輸出流中傳送2k位元組大小的資料失敗。

2.  retryonconnectionfailure = true含義:此值為真,並不意味著請求失敗時,會無限次重試。其只在以下幾種情況下重試:

a. connectionpool連線池中有空閒的連線,當請求直接使用此連線傳送資料失敗時,會進行重試1次;

b. 當服務端有多個ip位址時,會針對多個ip位址進行重試;

c. 當有多個**伺服器時,會通過proxyselector進行多次重試。

3.  同一時刻對同一ip的非同步請求最多只能有5個,其它的請求會排隊等待。

4.  連線超時時間connectiontimeout的理解誤區:

a.在socket建立連線時,並不是一定會等待connectiontimeout這麼長時間。例如,如果手機端斷開wifi、無線網路等所有網路連線時,connect會立即返回,報unreachable錯誤。

b.不同廠商的連線超時時間可能是不同的,根據我的測試,小公尺手機的最大連線超時時間是40s,華為手機的最大連線超時時間是120s。

物聯卡認識易陷入的幾大誤區

物聯網這一概念發展至今才有幾個年頭,但其發展勢頭勢如破竹,尤其是在2019年,隨著5g商用牌照的正式發放,助力了物聯網行業突飛猛進的發展,5g 物聯網 商用模式的提出更是被大多人所看好,成為繼網際網路產業後的又乙個超大型產業鏈。然而作為乙個新興的朝陽產業,很多普通使用者對於物聯網卡概念認識還存在諸多...

C語言易忽視的錯誤

1 單精度浮點數的定義 float adf 0.2 為什麼會警告?2 int和long int有多少位?3 怎樣正確的比較float型變數和0的大小?4 有符號數是怎樣儲存的?5 有符號數是怎樣移位的?6 陣列名 指標和位址之間有什麼關係?7 指標常量 常量指標和常量常指標有什麼區別?8 空指標 野...

新手易犯錯誤集

include include define exp 0.00000001 int main else else if disc 0.0 else return 0 今天在寫這個 的時候犯了很多錯誤決定把它記下來,以後就不會犯了,1 今天寫的時候在else後面還加了小括號寫了判斷語句,後來經查得知。...