Dans le package http de Go, il est courant d'effectuer plusieurs requêtes http pour interroger des chaînes. Cependant, extraire ces chaînes de l’URL finale peut s’avérer difficile, surtout en cas de redirection. Malheureusement, l'objet Response manque d'informations concernant cette URL finale.
Malgré la disponibilité d'options de prévention des redirections, cet article se concentre sur l'obtention de l'URL après qu'une demande a été effectuée. Pour y parvenir :
Voici un exemple d'extrait de code :
import ( "fmt" "log" "net/http" ) func main() { req, err := http.NewRequest("GET", "URL", nil) if err != nil { log.Fatal(err) } 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\n", lastUrlQuery) }
Ce code redirigera la requête et enregistrera la requête d'URL finale dans 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!