Heim >Backend-Entwicklung >Golang >Wie erhalte ich die endgültige URL nach Weiterleitungen mithilfe von Gos http.NewRequest?
So rufen Sie die endgültige URL nach Weiterleitungen in Gos http.NewRequest ab
Beim Stellen von HTTP-Anfragen mit http.NewRequest kann es zu Situationen kommen wohin der Server die Anfrage umleitet. Um Abfragezeichenfolgen aus der endgültigen URL zu extrahieren, müssen Sie die URL finden, an der die Anfrage letztendlich gelandet ist.
Obwohl im http.Response-Objekt kein explizites Feld vorhanden ist, gibt es eine Möglichkeit, die endgültige URL zu erhalten URL:
Verwenden einer anonymen Funktion zum Überprüfen von Weiterleitungen
Eine anonyme Funktion kann zum Erfassen und Speichern der Weiterleitungen verwendet werden endgültige Weiterleitungs-URL. Hier ist ein Beispiel:
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)
Die dem Client bereitgestellte CheckRedirect-Funktion umschließt den standardmäßigen Prüfumleitungsmechanismus. Es überprüft die Anzahl der Weiterleitungen und speichert die endgültige URL-Abfrage in der Variablen lastUrlQuery. Sobald die Anforderungsausführung abgeschlossen ist, können Sie über lastUrlQuery auf die endgültige URL zugreifen.
Das obige ist der detaillierte Inhalt vonWie erhalte ich die endgültige URL nach Weiterleitungen mithilfe von Gos http.NewRequest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!