Heim >Backend-Entwicklung >Golang >Wie überprüfe ich den HTTP-Antwortstatuscode in Golang?

Wie überprüfe ich den HTTP-Antwortstatuscode in Golang?

WBOY
WBOYOriginal
2024-06-05 20:28:00939Durchsuche

Die Methoden zum Überprüfen des HTTP-Antwortstatuscodes in Golang sind: Verwenden Sie http.Response.StatusCode, um den Antwortstatuscode direkt mit dem erwarteten Wert zu vergleichen. Erstellen Sie einen benutzerdefinierten Fehlertyp, der einen Statuscode und eine Fehlermeldung enthält, und überprüfen Sie den Statuscode, indem Sie den Fehler abfangen.

在 Golang 中如何验证 HTTP 响应状态代码?

So überprüfen Sie den HTTP-Antwortstatuscode in Golang

Beim Senden von HTTP-Anfragen mit dem net/http-Paket in Golang ist es sehr wichtig, den Antwortstatuscode zu überprüfen. Dies hilft bei der Bewältigung von serverseitigen Fehlern, Konfigurationsproblemen und anderen Netzwerkproblemen. net/http 包发送 HTTP 请求时,验证响应状态代码非常重要。这有助于处理服务器端错误、配置问题和其他网络问题。

使用 http.Response.StatusCode

http.Response 类型包含一个 StatusCode 字段,表示 HTTP 响应的状态代码。要验证状态代码,可以简单地比较 StatusCode 与预期的值:

package main

import (
  "fmt"
  "net/http"
  "net/http/httptest"
)

func main() {
  // 创建一个模拟响应
  resp := httptest.NewRecorder()

  // 设置状态代码
  resp.WriteHeader(http.StatusOK)

  if resp.Code == http.StatusOK {
    fmt.Println("成功")
  }
}

使用自定义错误类型

另一种验证响应状态代码的方法是创建一个自定义错误类型,其中包含状态代码和错误消息:

package main

import (
  "errors"
  "fmt"
  "net/http"
)

type HTTPError struct {
  Code int
  Msg  string
}

func (e HTTPError) Error() string {
  return fmt.Sprintf("HTTP Error: %d - %s", e.Code, e.Msg)
}

func main() {
  // 发送请求并捕获响应
  resp, err := http.Get("https://example.com")
  if err != nil {
    fmt.Println(err)
    return
  }

  if resp.StatusCode != http.StatusOK {
    // 创建自定义错误
    err = HTTPError{Code: resp.StatusCode, Msg: "请求失败"}
    fmt.Println(err)
  }
}

实战案例

以下是使用 http.Response.StatusCode

Verwenden Sie http.Response.StatusCode

Der Typ http.Response enthält ein Feld StatusCode, das den Statuscode des HTTP darstellt Antwort. Um den Statuscode zu überprüfen, können Sie einfach StatusCode mit dem erwarteten Wert vergleichen: 🎜
func GetUserData(userID int) (UserData, error) {
  resp, err := http.Get(fmt.Sprintf("https://myapi.com/users/%d", userID))
  if err != nil {
    return UserData{}, err
  }

  if resp.StatusCode != http.StatusOK {
    return UserData{}, fmt.Errorf("请求失败: %d", resp.StatusCode)
  }

  // 解析响应并返回数据
}
🎜🎜Verwenden eines benutzerdefinierten Fehlertyps 🎜🎜🎜Eine andere Möglichkeit, den Antwortstatuscode zu überprüfen, besteht darin, einen benutzerdefinierten Fehlertyp zu erstellen , das den Statuscode und die Fehlermeldung enthält: 🎜rrreee🎜🎜Ein praktischer Fall 🎜🎜🎜Das Folgende ist ein praktischer Fall für die Verwendung von http.Response.StatusCode zur Überprüfung des Statuscodes: 🎜🎜Angenommen, Sie entwickeln eine API, die HTTP GET verwendet, um Daten aus der Datenbank abzurufen. Sie müssen den Antwortstatuscode überprüfen, um sicherzustellen, dass die Anfrage erfolgreich abgeschlossen wurde: 🎜rrreee🎜 Durch die Validierung des Antwortstatuscodes stellen Sie sicher, dass Daten nur zurückgegeben werden, wenn der Server die Anfrage erfolgreich verarbeitet hat. 🎜

Das obige ist der detaillierte Inhalt vonWie überprüfe ich den HTTP-Antwortstatuscode in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn