首页 > 后端开发 > Golang > 正文

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

DDD
发布: 2024-11-11 16:59:03
原创
504 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板