去http客户端不遵循重定向

时间:2017-04-20 13:15:10

标签: http go

我有一个检查网址的功能:

BEGIN

错误var:意外EOF

在tcpdump中,我看到重定向和连接关闭:

func Checkurl(url string) {
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
resp, err := client.Get(url)

我如何获得位置?

1 个答案:

答案 0 :(得分:1)

使用Response.Location功能。

newUrl, err := resp.Location()

类型Client支持重定向。请参阅CheckRedirect字段。这可能是处理重定向的更好工具,具体取决于您要实现的目标。

client.Do用于Request对象方法

client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
// check error
resp, err := client.Do(req)
// check error
newURL, err := resp.Location()
// check error

默认客户端默认处理重定向,因此我会检查最终目标的响应。这很可能是你问题的根本原因。