我正在向服务器发送请求,但它正在返回网页。有没有办法获取网页的网址呢?
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { req, err := http.NewRequest("GET", "https://www.google.com", nil) if err != nil { panic(err) } client := new(http.Client) response, err := client.Do(req) if err != nil { panic(err) } fmt.Println(ioutil.ReadAll(response.Body)) }
您需要检查重定向并停止(捕获)它们。如果捕获重定向,则可以使用响应结构的定位方法获取重定向URL(重定向到该URL)。
package main import ( "errors" "fmt" "net/http" ) func main() { req, err := http.NewRequest("GET", "https://www.google.com", nil) if err != nil { panic(err) } client := new(http.Client) client.CheckRedirect = func(req *http.Request, via []*http.Request) error { return errors.New("Redirect") } response, err := client.Do(req) if err != nil { if response.StatusCode == http.StatusFound { //status code 302 fmt.Println(response.Location()) } else { panic(err) } } }