我使用Client.Get(url)函数访问网页。
timeout := time.Duration(wgetTimeout) * time.Second
client := 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() function doc说:返回的任何错误均为* url.Error类型。如果请求超时,则url.Error值的Timeout方法将报告true。
如何访问类似bool Timeout()的url.Error方法?
here发布的解决方案要求使用Client.Do()函数。
最佳答案
if e, ok := err.(*url.Error); ok && e.Timeout() {
log.Fatal("timeout is: ", e.Timeout())
} else if err != nil {
panic(err)
}
关于go - 从net/http包中的* urlError访问Timeout()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62496603/