首页  >  文章  >  后端开发  >  如何确定 Golang 重定向后的最终 URL?

如何确定 Golang 重定向后的最终 URL?

DDD
DDD原创
2024-11-11 16:59:03500浏览

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