如何解开从 http.Client 返回的 url.Error?

Den*_*sel 4 go

我在用着net.http.client

发送请求后

resp, err := Client.Do(req)
Run Code Online (Sandbox Code Playgroud)

我收到了我想要处理的错误。

err.Error()以字符串形式返回错误。但我需要将错误作为对象来处理。我发现该方法Unwrap()似乎返回一个url.Error对象,但我得到了err.Unwrap undefined (type error has no field or method Unwrap)

抱歉问了个愚蠢的问题,我对 golang 完全陌生。

ber*_*eal 7

根据文档,从Client.Dowill 返回的任何错误都是*url.Error,但由于方法签名表示(*Response, error),因此您必须在使用前显式转换它:

urlErr := err.(*url.Error)
if urlErr.Timeout() {
    // ..
}
Run Code Online (Sandbox Code Playgroud)