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

如何在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条经验 获得超3个赞

您需要检查重定向并停止(捕获)它们。如果捕获重定向,则可以使用响应结构的 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 关注
  • 377 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信