首页 > 其他 > 详细

golang获取重定向的地址

时间:2020-01-31 12:38:27      阅读:270      评论:0      收藏:0      [点我收藏+]

http模块默认跟随重定向

使用http.Get,当遇到301跳转时,会获取重定向后的内容

res, err := http.Get(url)
if err != nil {
logrus.Error(err)
return nil, err
}

//这里的状态是200
fmt.println(res.StatusCode)

获取页面重定向的location

为了获取重定向的location,要重新实现一个http.Client,例子如下:

    baseHost := "https://www.example.com/"
client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
    return http.ErrUseLastResponse
    },
}

res, err := client.Get(baseHost)
if err != nil {
    return baseHost
}

if res.StatusCode != 301 {
    return baseHost
}

return res.Header.Get("Location")

golang获取重定向的地址

原文:https://www.cnblogs.com/xiaohunshi/p/12244962.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!