如何检查特定的 golang net/http 错误代码?

Ale*_*lex 1 http go

package main

import "net/http"

func main() {
     req, err := http.NewRequest("GET", "http://domain_does_not_exist", nil)
     if err != nil { panic("NewRequest") }
     client := http.Client{ }
     _, err = client.Do(req)
     if err == ???
}
Run Code Online (Sandbox Code Playgroud)

我想检查我的 GET 请求是否有特定错误(DNS 解析错误)。如何做到这一点?

Ton*_*nas 5

"errors"具有函数As用于解包特定的错误类型,并且包"net"具有*DNSError类型。所以:

var dnsErr *net.DNSError
if errors.As(err, &dnsErr) {
    ...
}
Run Code Online (Sandbox Code Playgroud)