Respostas:
O Headercampo da solicitação é público. Você pode fazer isso:
req.Header.Set("name", "value")
Preste atenção que no cabeçalho http.Request "Host" não pode ser definido através do Setmétodo
req.Header.Set("Host", "domain.tld")
mas pode ser definido diretamente:
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)
O pacote net / http do Go tem muitas funções que lidam com cabeçalhos . Entre eles estão os métodos Add , Del , Get e Set . A maneira de usar o Set é:
func yourHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("header_name", "header_value")
}
r *http.Requeste retorna algo w http.ResponseWriter. Portanto, provavelmente porque você está retornando cabeçalhos, é necessário escrevê-los em um escritor de respostas. E wé um escritor de respostas. Isso parece lógico para você?