所以,我使用的是net/http包.我得到了一个URL,我知道它肯定是重定向的.它甚至可能在登陆最终URL之前重定向几次.重定向是在后台自动处理的.
有没有一种简单的方法可以计算出最终的URL是什么,而不需要在http.Client对象上设置CheckRedirect字段的黑客解决办法呢?
我想我应该提一下,我想我想出了一个解决办法,但它有点老套,因为它涉及到使用全局变量并在自定义http.Client上设置CheckRedirect字段.
一定有一种更干净的方法来做这件事.我希望是这样的:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
// Try to GET some URL that redirects. Could be 5 or 6 unseen redirections here.
resp, err := http.Get("http://some-server.com/a/url/that/redirects.html")
if err != nil {
log.Fatalf("http.Get => %v", err.Error())
}
// Find out what URL we ended up at
finalURL := magicFunctionThatTellsMeTheFinalURL(resp)
fmt.Printf("The URL you ended up at is: %v", finalURL)
}