Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich die endgültige URL nach HTTP-Weiterleitungen in Go ab?

Wie rufe ich die endgültige URL nach HTTP-Weiterleitungen in Go ab?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 02:05:11924Durchsuche

How to Retrieve the Final URL After HTTP Redirects in Go?

So erhalten Sie URLs nach Kundenanweisungen

Im http-Paket von Go ist es üblich, mehrere http-Anfragen zum Abfragen von Zeichenfolgen zu stellen. Das Extrahieren dieser Zeichenfolgen aus der endgültigen URL kann jedoch eine Herausforderung sein, insbesondere wenn Weiterleitungen auftreten. Leider fehlen im Antwortobjekt Informationen zu dieser endgültigen URL.

Trotz der Verfügbarkeit von Weiterleitungsverhinderungsoptionen konzentriert sich dieser Artikel auf das Abrufen der URL, nachdem eine Anfrage gestellt wurde. Um dies zu erreichen:

  1. Erstellen Sie eine neue http-Anfrage mit http.NewRequest.
  2. Richten Sie einen http.Client ein, um die Anfrage zu bearbeiten.
  3. Verwenden Sie eine anonyme Funktion um den Client einzurichten. Die anonyme Funktion ermöglicht die Speicherung der URL-Abfrage in einer Variablen.
  4. Führen Sie die Anfrage mit client.Do aus.
  5. Gespeicherte URL-Abfrage abrufen.

Hier ist ein Beispielcode-Snippet:

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)
}

Dieser Code leitet die Anfrage um und speichert die endgültige URL-Abfrage in lastUrlQuery.

Das obige ist der detaillierte Inhalt vonWie rufe ich die endgültige URL nach HTTP-Weiterleitungen in Go ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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