你好,获取 http.Client 重定向后的内容可以通过设置 CheckRedirect 函数来实现。具体步骤如下:
package main
import (
"fmt"
"net/http"
)
func main() {
client := &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse // 禁止自动重定向
},
}
resp, err := client.Get("https://www.example.com")
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.StatusCode) // 打印响应状态码
fmt.Println(resp.Request.URL) // 打印最终请求地址
fmt.Println(resp.Header) // 打印响应头信息
bodyContent, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(bodyContent)) // 打印响应正文内容
}
在上面的代码中,我们创建了一个 http.Client 对象,并设置了 CheckRedirect 函数为禁止自动重定向。当发送 GET 请求时,如果遇到重定向,则会返回最终的响应结果。然后我们可以通过访问 resp.StatusCode、resp.Request.URL、resp.Header 和 resp.Body 等属性来获取相应的信息。
希望这个回答对你有所帮助!




