Maison >développement back-end >Golang >Comment vérifier le code d'état de la réponse HTTP dans Golang ?

Comment vérifier le code d'état de la réponse HTTP dans Golang ?

WBOY
WBOYoriginal
2024-06-05 20:28:00961parcourir

Les méthodes pour vérifier le code d'état de la réponse HTTP dans Golang sont : utilisez http.Response.StatusCode pour comparer directement le code d'état de la réponse avec la valeur attendue. Créez un type d'erreur personnalisé contenant un code d'état et un message d'erreur, puis vérifiez le code d'état en détectant l'erreur.

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

Comment vérifier le code d'état de la réponse HTTP dans Golang

Lors de l'envoi de requêtes HTTP à l'aide du package net/http dans Golang, il est très important de vérifier le code d'état de la réponse. Cela permet de gérer les erreurs côté serveur, les problèmes de configuration et autres problèmes de réseau. 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

Utilisez http.Response.StatusCode

Le type http.Response contient un champ StatusCode qui représente le code d'état du HTTP réponse. Pour vérifier le code d'état, vous pouvez simplement comparer StatusCode avec la valeur attendue : 🎜
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)
  }

  // 解析响应并返回数据
}
🎜🎜Utilisation d'un type d'erreur personnalisé 🎜🎜🎜Une autre façon de vérifier le code d'état de la réponse consiste à créer un type d'erreur personnalisé , qui contient le code d'état et le message d'erreur : 🎜rrreee🎜🎜Un cas pratique 🎜🎜🎜Ce qui suit est un cas pratique pour utiliser http.Response.StatusCode pour vérifier le code d'état : 🎜🎜Supposons que vous développent une API qui utilise HTTP GET pour récupérer les données de la base de données. Vous devez vérifier le code d'état de la réponse pour vous assurer que la demande s'est terminée avec succès : 🎜rrreee🎜 En validant le code d'état de la réponse, vous vous assurez que les données ne sont renvoyées que si le serveur a traité avec succès la demande. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn