Maison > développement back-end > Golang > Comment obtenir l'URL finale après les redirections à l'aide de http.NewRequest de Go ?

Comment obtenir l'URL finale après les redirections à l'aide de http.NewRequest de Go ?

DDD
Libérer: 2024-11-23 13:14:14
original
612 Les gens l'ont consulté

How to Get the Final URL After Redirects Using Go's http.NewRequest?

Comment récupérer l'URL finale après les redirections dans http.NewRequest de Go

Lorsque vous effectuez des requêtes HTTP avec http.NewRequest, vous pouvez rencontrer des situations où le serveur redirige la demande. Pour extraire les chaînes de requête de l'URL finale, vous devez trouver l'URL à laquelle la requête a finalement abouti.

Malgré l'absence de champ explicite dans l'objet http.Response, il existe un moyen d'obtenir l'URL finale. URL :

Utiliser une fonction anonyme pour vérifier les redirections

Une fonction anonyme peut être utilisée pour capturez et enregistrez l’URL de redirection finale. Voici un exemple :

req, err := http.NewRequest("GET", URL, nil)
cl := http.Client{}

var lastUrlQuery string

cl.CheckRedirect = func(req *http.Request, via []*http.Request) error {
    if len(via) > 10 {
        return errors.New("too many redirects")
    }

    lastUrlQuery = req.URL.RequestURI()
    return nil
}

resp, err := cl.Do(req)
if err != nil {
    log.Fatal(err)
}

fmt.Printf("last url query is %v", lastUrlQuery)
Copier après la connexion

La fonction CheckRedirect fournie au client encapsule le mécanisme de redirection de vérification par défaut. Il vérifie le nombre de redirections et enregistre la requête URL finale dans la variable lastUrlQuery. Une fois l'exécution de la requête terminée, vous pouvez accéder à l'URL finale via lastUrlQuery.

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