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