为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang中获取重定向网址而不是页面内容?

如何在golang中获取重定向网址而不是页面内容?

Go
叮当猫咪 2021-12-07 16:45:40
我正在向服务器发送请求,但它正在返回一个网页。有没有办法获取网页的网址?package mainimport (    "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))}

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

您需要检查重定向并停止(捕获)它们。如果捕获重定向,则可以使用响应结构的 location 方法获取重定向 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)

    }


}


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 399 浏览
慕课专栏
更多

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号