Golang:从 HTTP 响应中获取响应重定向 URL
Golang: Getting the response-redirect URL from an HTTP response
我正在尝试在 Go 中使用 http.Get(url) 发出 HTTP 请求,我想在浏览器中打开响应。我正在使用 browser.OpenURL() 启动系统浏览器,但我不知道如何获得响应 url.
在Python中,使用requests库,是response对象的一个属性。
我可以像这样在浏览器中获取并打开它(使用浏览器库):
response = requests.get(endpoint)
browser.open(response.url)
我如何使用 Go 中的 http/net 库完成此操作?响应对象是一个不包含该属性的结构。
我正在尝试调用 Spotify API 来验证应用程序,这需要打开浏览器 window 供用户输入。到目前为止,我得到了这个:
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
只需从响应 header 中获取重定向 URL。
redirectURL := resp.Header.Get("Location")
我正在尝试在 Go 中使用 http.Get(url) 发出 HTTP 请求,我想在浏览器中打开响应。我正在使用 browser.OpenURL() 启动系统浏览器,但我不知道如何获得响应 url.
在Python中,使用requests库,是response对象的一个属性。 我可以像这样在浏览器中获取并打开它(使用浏览器库):
response = requests.get(endpoint)
browser.open(response.url)
我如何使用 Go 中的 http/net 库完成此操作?响应对象是一个不包含该属性的结构。
我正在尝试调用 Spotify API 来验证应用程序,这需要打开浏览器 window 供用户输入。到目前为止,我得到了这个:
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
只需从响应 header 中获取重定向 URL。
redirectURL := resp.Header.Get("Location")