Jak ustawić nagłówki w żądaniu http get?


152

Robię prosty http GET in Go:

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

Ale nie mogę znaleźć sposobu na dostosowanie nagłówka żądania w dokumencie , dzięki

Odpowiedzi:



38

Zwróć uwagę, że w nagłówku http.Request „Host” nie można ustawić Setmetodą

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

ale można ustawić bezpośrednio:

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)

2

Pakiet net / http Go ma wiele funkcji, które zajmują się nagłówkami . Wśród nich są metody Add , Del , Get i Set . Sposób użycia Seta to:

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

7
jakiego typu jest w?
Eswar Yaganti

@EswarYaganti jak wysyłasz nagłówki? Dostajesz r *http.Requesti zwracasz coś w w http.ResponseWriter. Więc prawdopodobnie dlatego, że zwracasz nagłówki, musisz zapisać je w module zapisującym odpowiedzi. I wjest autorem odpowiedzi. Czy wydaje ci się to logiczne?
Salvador Dali

3
Oryginalny plakat powiedział, że chce „dostosować nagłówek żądania ”. Twój przykład dostosowuje nagłówek odpowiedzi .
Martin Del Vecchio
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.