web-dev-qa-db-fra.com

Comment définir les en-têtes dans http get request?

Je fais un simple http GET in Go:

client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
res, _ := client.Do(req)

Mais je ne peux pas trouver un moyen de personnaliser l'en-tête de la requête dans le doc , merci

114
wong2

Le champ Header de la demande est public. Vous pouvez faire ceci:

req.Header.Set("name", "value")
184
Denys Séguret

Attention, dans l'en-tête http.Request "Host" ne peut pas être défini via la méthode Set

req.Header.Set("Host", "domain.tld")

mais peut être réglé directement:

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)
24
Oleg Neumyvakin

Le paquet net/http de Go contient de nombreux fonctions traitant des en-têtes . Parmi eux se trouvent les méthodes Add , Del , Get et Set . La façon d'utiliser Set est:

func yourHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("header_name", "header_value")
}
0
Salvador Dali