我在Go语言中进行了一个简单的HTTP GET请求:
client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
res, _ := client.Do(req)
但我在文档中找不到自定义请求头的方法,谢谢。
请求的Header
字段是公共的。您可以这样做:
req.Header.Set("name", "value")
请注意,在http.Request头中,“Host”不能通过Set
方法设置:
req.Header.Set("Host", "domain.tld")
但可以直接设置:
req.Host = "domain.tld"
:
req, err := http.NewRequest("GET", "http://10.0.0.1/", nil)
if err != nil {
...
}
req.Host = "domain.tld"
client := &http.Client{}
resp, err := client.Do(req)
如果您想设置多个标题,使用这种方法会更方便,而不是编写多个set语句。
client := http.Client{}
req , err := http.NewRequest("GET", url, nil)
if err != nil {
//Handle Error
}
req.Header = http.Header{
"Host": {"www.host.com"},
"Content-Type": {"application/json"},
"Authorization": {"Bearer Token"},
}
res , err := client.Do(req)
if err != nil {
//Handle Error
}
r *http.Request
并在 w http.ResponseWriter
中返回某些内容。因此,由于您正在返回标头,您需要将它们写入响应输出流中。而 w
就是响应输出流。这对您来说是否合理? - Salvador Dali