首頁  >  文章  >  後端開發  >  如何確定 Golang 重新導向後的最終 URL?

如何確定 Golang 重新導向後的最終 URL?

DDD
DDD原創
2024-11-11 16:59:03538瀏覽

How to Determine the Final URL After Redirects in Golang?

Golang 中重定向後確定最終URL

Golang 的net/http 套件中,HTTP GET 請求會遇到重定向,從而導致到與初始請求不同的最終目標URL。這種困境提出了一個問題:我們如何確定一系列重定向後到達的最終 URL,而不採用繁瑣的解決方法?

解決方案

與假設相反一種 hackish 方法是必要的,HTTP GET 操作返回的 Response 物件中存在一個乾淨且簡單的解決方案。該對象保存發起請求的 Request 對象,該對象提供對存取的最終 URL 的存取。

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    resp, err := http.Get("http://stackoverflow.com/q/16784419/727643")
    if err != nil {
        log.Fatalf("http.Get => %v", err.Error())
    }

    // Function to retrieve the final URL
    finalURL := resp.Request.URL.String()

    fmt.Printf("The URL you ended up at is: %v", finalURL)
}

輸出:

The URL you ended up at is: http://stackoverflow.com/questions/16784419/in-golang-how-to-determine-the-final-url-after-a-series-of-redirects

此方法允許輕鬆檢索最終 URL經過任意次數的重定向後。無需額外的自訂或全域變數操作,確保乾淨且有效率的實作。

以上是如何確定 Golang 重新導向後的最終 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn