Android --- ConnectTimeout 和 ReadTimeout 所代表的意义
文章目錄
- ConnectTimeout
- ReadTimeout
ConnectTimeout
指的是建立連接所用的時間,適用于網(wǎng)絡(luò)狀況正常的情況下,兩端連接所用的時間。
在java中,網(wǎng)絡(luò)狀況正常的情況下,例如使用 HttpClient 或者 HttpURLConnetion 連接時設(shè)置參數(shù) connectTimeout=5000 即5秒,如果連接用時超過5秒就是拋出 java.net.SocketException: connetct time out 的異常。
ReadTimeout
指的是建立連接后從服務(wù)器讀取到可用資源所用的時間。
在這里我們可以這樣理解ReadTimeout:正常情況下,當(dāng)我們發(fā)出請求時可以收到請求的結(jié)果,也就是頁面上展示的內(nèi)容,但是當(dāng)網(wǎng)絡(luò)狀況很差的時候,就會出現(xiàn)頁面上無法展示出內(nèi)容的情況。另外當(dāng)我們使用爬蟲或者其他全自動的程序時,無法判斷當(dāng)前的網(wǎng)絡(luò)狀況是否良好,此時就有了ReadTimeout的用武之地了,通過設(shè)置ReadTimeout參數(shù),例:ReadTimeout=5000,超過5秒沒有讀取到內(nèi)容時,就認(rèn)為此次讀取不到內(nèi)容并拋出Java.net.SocketException: read time out的異常。
根據(jù)上面關(guān)于ConnectTimeout和ReadTimeout的描述,在我們使用需要設(shè)置這兩項參數(shù)的服務(wù)或程序時,應(yīng)該對兩項參數(shù)一起設(shè)置。 一般而言兩項參數(shù)的數(shù)值可以設(shè)置成一樣的,但根據(jù)筆者個人經(jīng)驗,可以把ReadTimeout設(shè)置的長一點,ConnectTimeout可以相對比較短,這是源于我們的網(wǎng)絡(luò)狀況一般較為穩(wěn)定,連接時很少出現(xiàn)問題,但是讀取時因為數(shù)據(jù)下載時的網(wǎng)絡(luò)波動,出狀況的可能性更大一些。
總結(jié)
以上是生活随笔為你收集整理的Android --- ConnectTimeout 和 ReadTimeout 所代表的意义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android --- 漂亮的 Load
- 下一篇: Android --- Retrofit