Respuestas:
El Header
campo de la solicitud es público. Puedes hacer esto:
req.Header.Set("name", "value")
Tenga en cuenta que en http.Request el encabezado "Host" no se puede configurar a través del Set
método
req.Header.Set("Host", "domain.tld")
pero se puede configurar directamente:
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)
El paquete net / http de Go tiene muchas funciones que tratan con encabezados . Entre ellos se encuentran los métodos Add , Del , Get y Set . La forma de usar Set es:
func yourHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("header_name", "header_value")
}
r *http.Request
y devuelve algo adentro w http.ResponseWriter
. Entonces, probablemente porque está devolviendo encabezados, debe escribirlos en un escritor de respuestas. Y w
es un escritor de respuestas. ¿Te parece lógico?