Как я могу проверить конкретный код ошибки golang net / 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 == ???
}
  

Я хотел бы проверить свой запрос GET на наличие конкретной ошибки (ошибка разрешения DNS). Как это сделать?

Ответ №1:

Пакет "errors" имеет такие функции, как, заключается в развертывании определенных типов ошибок, а пакет "net" имеет тип * DNSError . Итак:

 var dnsErr *net.DNSError
if errors.As(err, amp;dnsErr) {
    ...
}