Risposte:
Il Header
campo della richiesta è pubblico. Puoi farlo:
req.Header.Set("name", "value")
Prestare attenzione al fatto che nell'intestazione della richiesta http "Host" non è possibile impostare tramite il Set
metodo
req.Header.Set("Host", "domain.tld")
ma può essere impostato direttamente:
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)
Il pacchetto net / http di Go ha molte funzioni che si occupano delle intestazioni . Tra questi ci sono i metodi Add , Del , Get e Set . Il modo di usare Set è:
func yourHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("header_name", "header_value")
}
r *http.Request
e ritorna qualcosa dentro w http.ResponseWriter
. Quindi probabilmente perché stai restituendo le intestazioni, devi scriverle in uno scrittore di risposta. Ed w
è uno scrittore di risposta. Ti sembra logico?