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