Golang:从HTTP响应中获取响应重定向URL



我试图在Go中使用HTTP . get (url)发出HTTP请求,我想在浏览器中打开响应。我正在使用browser. openurl()来启动系统浏览器,但是我不知道如何获得响应url。

在Python中,使用requests库,它是响应对象的一个属性。我可以在浏览器中获取并打开它(使用浏览器库),如下所示:

response = requests.get(endpoint)
browser.open(response.url)

我怎么能做到这一点使用http/net库在Go?响应对象是一个不包含该属性的结构体。

我正在尝试调用Spotify API来验证应用程序,这需要打开浏览器窗口供用户输入。到目前为止,我得到了这个:

func getAuth(endpoint *url.Url) {
request, _ := http.NewRequest("GET", endpoint.string(), nil)
client := &http.Client{}
resp, err := client.Do(request)
if err != nil {
panic(err)
}
headers := resp.Header
page, _ := ioutil.ReadAll(resp.Body)

我在哪里可以获得响应URL或如何处理响应,以便它在浏览器中打开它吗?

如果有重定向,Go将更新响应上的Request结构体。

resp.Request.URL就是你要找的。

// Request is the request that was sent to obtain this Response.
// Request's Body is nil (having already been consumed).
// This is only populated for Client requests.
Request *Request

直接从响应头中获取重定向URL。

redirectURL := resp.Header.Get("Location")

相关内容

  • 没有找到相关文章

最新更新