Як встановити заголовки в http отримати запит?


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

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

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

7
який тип ш?
Eswar Yaganti

@EswarYaganti, як ви надсилаєте заголовки? Ви отримуєте r *http.Requestі повертаєте щось назад w http.ResponseWriter. Тому, ймовірно, тому, що ви повертаєте заголовки, вам потрібно написати їх у відповіді. І wце письменник-відповідь. Це виглядає для вас логічно?
Сальвадор Далі

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