Maison > développement back-end > Golang > Comment désactiver les redirections automatiques dans le client HTTP Go ?

Comment désactiver les redirections automatiques dans le client HTTP Go ?

Linda Hamilton
Libérer: 2024-12-26 05:42:44
original
520 Les gens l'ont consulté

How to Disable Automatic Redirects in the Go HTTP Client?

Désactivation des redirections automatiques dans le client HTTP Go

Le client HTTP Go suit automatiquement les redirections HTTP lorsqu'un point de terminaison d'API renvoie une redirection HTTP 302 avec un En-tête d'emplacement HTTP. Ce comportement peut être indésirable dans certains scénarios, par exemple lorsque vous devez capturer l'en-tête HTTP Location pour un traitement ultérieur.

Une approche courante pour désactiver les redirections automatiques consiste à remplacer la fonction CheckRedirect du client. Cependant, cette solution peut ressembler à un hack car elle traite les redirections HTTP comme des erreurs, ce qui n'est pas le cas.

Une solution plus élégante consiste à utiliser http.Transport pour configurer le comportement du client :

import (
    "net/http"
)

// Create a custom round-trip transport
transport := &http.Transport{
    DisableKeepAlives: true,
}

// Create an HTTP client with the custom transport
client := &http.Client{
    Transport: transport,
}
Copier après la connexion

Dans cette configuration, le champ DisableKeepAlives est défini sur true, ce qui empêche le client de conserver des connexions persistantes, évitant ainsi d'avoir besoin d'intercepter redirections.

Vous pouvez également utiliser le code suivant pour désactiver explicitement les redirections :

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

Avec ce code, le package HTTP reconnaît automatiquement que les redirections ne doivent pas être suivies, mais ne lance pas toute erreur. Cela vous permet d'effectuer des requêtes HTTP avec l'authentification de base tout en désactivant les redirections automatiques sans recourir à une gestion complexe 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal