Maison > développement back-end > Golang > Comment puis-je empêcher les redirections avec le client HTTP Go ?

Comment puis-je empêcher les redirections avec le client HTTP Go ?

DDD
Libérer: 2024-12-21 06:44:13
original
576 Les gens l'ont consulté

How Can I Prevent Redirects with the Go HTTP Client?

Ne pas suivre les redirections avec le client HTTP Go

Lors de l'interaction avec les API REST qui renvoient des réponses de redirection, modification du comportement du client HTTP Go ignorer les redirections peut être nécessaire pour des cas d’utilisation spécifiques. Voici un moyen simple et efficace d'obtenir cette fonctionnalité :

La fonction CheckRedirect de http.Client a priorité sur le comportement de suivi de redirection par défaut. En personnalisant cette fonction, vous pouvez déterminer quand les redirections doivent être suivies. Pour empêcher la redirection automatique, fournissez une implémentation alternative :

CheckRedirect: func(req *http.Request, via []*http.Request) error {
  return http.ErrUseLastResponse
}
Copier après la connexion

Cette configuration informe le package HTTP pour éviter les opérations de redirection. Il renvoie http.ErrUseLastResponse, qui demande au package d'utiliser la dernière réponse avec le corps toujours accessible.

Dans votre exemple, mettez à jour la configuration du client comme suit :

client := &http.Client{
  CheckRedirect: func(req *http.Request, via []*http.Request) error {
    return http.ErrUseLastResponse
  },
}
Copier après la connexion

En définissant ceci configuration, votre script établira avec succès une connexion au point de terminaison, récupérera l'en-tête HTTP Location pour un traitement ultérieur et évitera d'être redirigé vers la nouvelle ressource. Cette méthode offre une approche plus élégante et sans erreur par rapport aux solutions alternatives qui forcent la gestion des erreurs.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal