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 }
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 }, }
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!