在 Go 的 http 套件中,發出多個查詢字串的 http 請求是很常見的。然而,從最終 URL 中提取這些字串可能具有挑戰性,尤其是在發生重定向時。不幸的是,Response 物件缺少有關此最終 URL 的資訊。
儘管可以使用重定向預防選項,但本文重點討論在發出請求後取得 URL。要實現此目的:
下面是一個範例程式碼片段:
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) }
此程式碼將重定向請求並將最終的 URL 查詢保存在最後的UrlQuery。
以上是如何在 Go 中檢索 HTTP 重定向後的最終 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!