我似乎遇到了一些tcp請求有時會「卡住」的問題,比如它正在等待某個響應,但連接已被「切斷」,因此響應永遠不會到來。 HttpURLConnection的預期行爲是否具有默認超時?是否設置了合理的默認值,以便默認情況下無法進入這種奇怪的「掛起」狀態?HttpURLConnection超時默認值
1
A
回答
0
出現HttpURLConnection的「默認」超時值爲零,表示「沒有超時」。
不幸的是,根據我的經驗,看起來使用這些默認值可能會導致不穩定的狀態,具體取決於連接到服務器時發生的情況。如果您使用HttpURLConnection
並且未明確設置(至少讀取)超時,則您的連接可能會進入永久陳舊狀態。默認。因此,請始終將setReadTimeout
設置爲「某些」,否則您可能會孤兒連接(可能還有線程,具體取決於您的應用運行方式)。
從反覆試驗中可以看出,調用setConnectTimeout
並不是必需的,因爲套接字本身似乎內置了一個2分鐘的「連接超時」(至少在OS X中)。
您也可以通過調整system properties來設置超時的「全局默認值」。
修復/預測:總是設置一個readTimeout,或者使用不同的客戶端,讓您設置SO_KEEPALIVE。
相關問題
- 1. PHP:默認cURL超時值
- 2. RestTemplate - 默認超時值
- 3. 安卓(Java)HttpURLConnection在'讀'超時默認重試
- 4. IIS默認超時
- 5. PageMethod默認超時
- 6. WebClient默認超時?
- 7. 默認ping超時
- 8. 檢索默認的Internet超時值?
- 9. Nagios默認值超出時間期限
- 10. 如何設置savon默認超時值
- 11. WCF端點的默認超時值
- 12. 設定默認RTO(重傳超時)值
- 13. 什麼是TransactionScope默認超時值?
- 14. pywinauto更改默認超時值
- 15. db.savechanges()中的默認超時值?
- 16. flex響應者默認超時值?
- 17. HttpURLConnection超時設置
- 18. WCF 4默認超時?
- 19. 默認超時爲providerName =「System.Data.EntityClient」
- 20. PHP會話默認超時
- 21. Android HttpURLConnection連接超時
- 22. Httpurlconnection超時沒有發生
- 23. HttpURLConnection的閱讀超時
- 24. q.allSettled有默認的超時時間嗎?
- 25. 如何查找JRE默認關閉時間超時值?
- 26. 什麼時候默認值爲-1的spring事務超時?
- 27. 超級與sqlalchemy mixins默認值
- 28. 什麼是全局默認超時
- 29. 默認套接字超時[XAMPP HTTPS]
- 30. Smtp服務器默認超時