Wie erhalte ich die endgültige URL nach Weiterleitungen im „http.Client' von Go?

Susan Sarandon
Freigeben: 2024-11-16 18:07:02
Original
258 Leute haben es durchsucht

How to Get the Final URL After Redirects in Go's `http.Client`?

Extrahieren der endgültigen URL nach der Umleitung in Http.Go

Bei der Verwendung von http.NewRequest zum Stellen von HTTP-Anfragen kann es vorkommen, dass dies erforderlich ist Extrahieren Sie Abfragezeichenfolgen aus der endgültigen URL nach etwaigen Weiterleitungen. Das Response-Objekt bietet von Natur aus keinen Zugriff auf die endgültige URL.

So rufen Sie die URL nach Weiterleitungen ab:

  1. Erstellen Sie eine anonyme Funktion innerhalb des CheckRedirect-Rückrufs.
  2. Setzen Sie innerhalb der anonymen Funktion die Variable lastUrlQuery auf den RequestURI() der umgeleiteten Anfrage.
  3. Gib Null zurück, um zuzulassen die Weiterleitung.

Hier ist ein Codeausschnitt, der diesen Ansatz demonstriert:

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)
Nach dem Login kopieren

Mit dieser Technik können Sie die endgültige URL erfassen, nachdem alle Weiterleitungen erfolgt sind, sodass Sie darauf zugreifen können Abfragezeichenfolgen und andere Informationen vom endgültigen Ziel.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die endgültige URL nach Weiterleitungen im „http.Client' von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage