Maison > Article > développement back-end > Comment obtenir l'URL finale après les redirections à l'aide de http.NewRequest de Go ?
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)
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!