Détermination de l'URL finale après les redirections dans Go
Dans le package net/http de Go, lors des requêtes GET ou POST, vous pouvez rencontrer des situations où le serveur répond avec une redirection. Pour gérer cela automatiquement, le client effectue la redirection de manière transparente en arrière-plan. Cependant, cela peut rendre difficile la détermination de l'URL finale atteinte après une série de redirections.
Heureusement, Go propose une solution simple et efficace pour récupérer l'URL finale. Dans la réponse HTTP, l'objet Request contient l'URL finale tentée par le client.
Voici un exemple montrant comment obtenir l'URL finale :
package main import ( "fmt" "log" "net/http" ) func main() { // Perform the request. It could go through multiple redirections. resp, err := http.Get("http://example.com/path/to/resource") if err != nil { log.Fatalf("http.Get => %v", err.Error()) } // Extract the final URL from the request in the response. finalURL := resp.Request.URL.String() fmt.Println("The final URL reached is:", finalURL) }
Dans ce code, l'objet Request dans la réponse HTTP contient l'URL finale une fois que toutes les redirections ont eu lieu. Le programme imprime cette URL finale sur la console.
Cette approche est plus propre que l'utilisation de solutions de contournement hackées et vous donne un accès direct à la dernière URL consultée par le client. Il garantit que vous pouvez facilement suivre et enregistrer toute la chaîne de redirection, si nécessaire.
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!