2012-10-12 77 views

回答

97

请求的Header场是公开的。你可以这样做:

req.Header.Set("name", "value") 
0

去的净/ http包有很多functions that deal with headers。其中有AddDelGetSet方法。要设置使用的方法是:

func yourHandler(w http.ResponseWriter, r *http.Request) { 
    w.Header().Set("header_name", "header_value") 
} 
+6

什么类型是w? –

+0

@EswarYaganti你是如何发送的头?你得到一个'R * http.Request'并返回在'w^http.ResponseWriter'东西。所以可能是因为你正在返回头文件,你需要将它们写在响应编写器中。 'w'是一个回应作家。这看起来合乎逻辑吗? –

6

注重在http.Request头“主机”无法通过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" 

resp, err := http.Client.Do(req)