是的,Golang的httpClient允许重定向。在Go语言中,httpClient会默认地执行HTTP重定向,除非你明确禁用它。如果HTTP响应状态码为301或302,则httpClient将自动跟随重定向。
以下是一个使用httpClient执行GET请求并允许重定向的示例代码:
import (
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "http://example.com", nil)
if err != nil {
fmt.Println(err)
return
}
resp, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
fmt.Println(resp.StatusCode)
// 如果需要获取响应内容,可以使用下面这段代码
// body, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// fmt.Println(err)
// return
// }
//
// fmt.Println(string(body))
}
在上述示例代码中,我们创建了一个httpClient,并通过NewRequest函数创建了一个HTTP GET请求。然后,我们通过client.Do方法发送请求,并获得响应对象resp。最后,我们输出了HTTP响应状态码。
如果服务器返回301或302状态码,则httpClient将自动跟随重定向,并将最终的响应结果返回给我们。