Как установить заголовки в запросе http get?


152

Я делаю простой http GET в Go:

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

Но я не могу найти способ настроить заголовок запроса в документе , спасибо

Ответы:



38

Обратите внимание, что в http.Request заголовок «Хост» нельзя задать Setметодом

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

но можно установить напрямую:

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

Пакет go / net / http имеет много функций, которые работают с заголовками . Среди них есть методы Add , Del , Get и Set . Способ использования Set:

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

7
какой тип ш?
Ишвар Яганти

@EswarYaganti, как ты отправляешь заголовки? Вы получаете r *http.Requestи возвращает что-то обратно w http.ResponseWriter. Поэтому, вероятно, поскольку вы возвращаете заголовки, вам нужно записать их в средство записи ответов. И wявляется автором ответа. Это выглядит логичным для вас?
Сальвадор Дали

3
Оригинальный плакат сказал, что он хочет "настроить заголовок запроса ". Ваш пример настраивает заголовок ответа .
Мартин Дель Веккио
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.