首頁  >  文章  >  後端開發  >  http客戶端:無網路時更快的逾時

http客戶端:無網路時更快的逾時

WBOY
WBOY轉載
2024-02-11 12:09:09690瀏覽

http客戶端:無網路時更快的逾時

php小編新一今天為大家介紹一款名為「http客戶端:無網路時更快的超時」的工具。在網路不穩定或無網路環境下,逾時時間過長可能會導致使用者體驗不佳。而這款http客戶端工具可以幫助解決這個問題,它透過優化超時機制,使得在無網路的情況下,超時時間更加快速,從而提高了應用程式的響應速度和用戶的體驗。讓我們一起來了解這款工具的具體功能和使用方法吧!

問題內容

當在 go 中發出 http get 請求時,即使沒有網路連接,它也會在傳回錯誤之前等待完整的逾時時間。

我認為在內部它很快就知道它失敗了;我希望該錯誤盡快傳播,而不是等待超時時間。我確實希望它在網路存在但速度很慢時嘗試 20 秒。我如何設定具有這種行為的客戶端?

查看問題的程式碼:

var client = &http.Client{
    Timeout: time.Second * 20,
}

response, err := client.Get(url)

如果重要的話,我正在使用 gomobile 並且它在 ios 模擬器上運行。

解決方法

這裡的答案非常簡單:golang 內部可以並且確實知道何時沒有網絡,並及時傳播故障,而無需等待 20 秒超時。網路上不會發送任何內容,也無需等待。 Go 似乎一切正常,並且不需要對範例程式碼進行任何更改。

該問題仍然會持續重現,但僅限於 iOS 模擬器。這似乎是一個特定於 iOS 模擬器如何將連線映射到主機作業系統的問題。不確定這是一個長期存在的問題,還是我的 MacOS/模擬器配對中的一次性問題。在主機 MacOS 和真實 iOS 裝置上,它可以正常工作,當沒有網路介面時,它會立即逾時。

不需要額外的請求,因為這只是得出相同結論的另一個途徑,這增加了其他失敗的可能性。可能有助於區分網路問題與特定服務的問題,或更快地獲得真實網路狀態的指示器(在連接的網路介面存在之後)。

以上是http客戶端:無網路時更快的逾時的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除