首頁 > 後端開發 > Golang > 主體

如何在 Go 中檢索 HTTP 重定向後的最終 URL?

Linda Hamilton
發布: 2024-11-26 02:05:11
原創
922 人瀏覽過

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

如何在客戶端定向後取得 URL

在 Go 的 http 套件中,發出多個查詢字串的 http 請求是很常見的。然而,從最終 URL 中提取這些字串可能具有挑戰性,尤其是在發生重定向時。不幸的是,Response 物件缺少有關此最終 URL 的資訊。

儘管可以使用重定向預防選項,但本文重點討論在發出請求後取得 URL。要實現此目的:

  1. 使用 http.NewRequest 建立新的 http 請求。
  2. 設定 http.Client 來處理請求。
  3. 使用匿名函數設定客戶端。匿名函數允許將 URL 查詢儲存在變數中。
  4. 使用 client.Do 執行請求。
  5. 檢索儲存的 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板