如何在Go 的http.NewRequest 中取得重定向後的最終URL
使用http.NewRequest 發出HTTP 請求時,可能會遇到情況伺服器重定向請求的位置。要從最終 URL 中提取查詢字串,您需要找到請求最終到達的 URL。
儘管http.Response 物件中缺少明確字段,但有一種方法可以獲取最終URL URL:
使用匿名函數檢查重定向
可以使用匿名函數捕獲並保存最終的重定向URL。以下是範例:
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)
提供給客戶端的 CheckRedirect 函數包裝了預設的檢查重定向機制。它檢查重定向次數並將最終 URL 查詢保存在 lastUrlQuery 變數中。請求執行完成後,您可以透過lastUrlQuery存取最終URL。
以上是如何使用 Go 的 http.NewRequest 取得重定向後的最終 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!