我使用 Client.Get(url) 函数访问网页。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 () 函数文档说:任何返回的错误都是 *url.Error 类型。如果请求超时,url.Error 值的 Timeout 方法将报告 true。如何访问 url.Error 方法,如 bool Timeout() ?此处发布的解决方案需要使用 Client.Do() 函数。
2 回答

拉丁的传说
TA贡献1789条经验 获得超8个赞
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贡献1725条经验 获得超8个赞
使用os.IsTimeout来确定错误是否有返回 true 的 Timeout() 方法。
res, err := client.Get(url)
if os.IsTimeout(err) {
// handle timeout
} else if err != nil {
return "", err
}
- 2 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消