我使用 Client.Get(url) 函數(shù)訪問網(wǎng)頁。timeout := time.Duration(wgetTimeout) * time.Secondclient := http.Client{Timeout: timeout}// Get page and check for error (timeout, http ...)res, err := client.Get(url)if err != nil { return "", err}defer res.Body.Close()Client.Get () 函數(shù)文檔說:任何返回的錯(cuò)誤都是 *url.Error 類型。如果請(qǐng)求超時(shí),url.Error 值的 Timeout 方法將報(bào)告 true。如何訪問 url.Error 方法,如 bool Timeout() ?此處發(fā)布的解決方案需要使用 Client.Do() 函數(shù)。
2 回答

拉丁的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
GoDoc:輸入 *url.Error
if e, ok := err.(*url.Error); ok && e.Timeout() {
log.Fatal("timeout is: ", e.Timeout())
} else if err != nil {
panic(err)
}

qq_遁去的一_1
TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用os.IsTimeout來確定錯(cuò)誤是否有返回 true 的 Timeout() 方法。
res, err := client.Get(url)
if os.IsTimeout(err) {
// handle timeout
} else if err != nil {
return "", err
}
- 2 回答
- 0 關(guān)注
- 151 瀏覽
添加回答
舉報(bào)
0/150
提交
取消