Başlıklar http almak için nasıl ayarlanır?


162

Go'da basit bir http GET yapıyorum:

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

Ancak dokümandaki istek başlığını özelleştirmenin bir yolunu bulamıyorum , teşekkürler

Yanıtlar:


248

HeaderTalebinin alan herkese açıktır. Bunu yapabilirsiniz:

req.Header.Set("name", "value")

42

Http.Request başlığındaki "Host" Setyöntemiyle ayarlanamayacağına dikkat edin

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

ancak doğrudan ayarlanabilir:

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)

hayat kurtaran cevap !!
hunter_tech

2

Go'nun net / http paketi, başlıklarla ilgilenen birçok işleve sahiptir . Bunlar arasında Add , Del , Get ve Set yöntemleri vardır. Set'i kullanmanın yolu:

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

7
w ne tür?
Eswar Yaganti

@EswarYaganti başlıkları nasıl gönderiyorsunuz? Bir alırsınız r *http.Requestve bir şeyi geri verirsiniz w http.ResponseWriter. Muhtemelen başlıkları döndürdüğünüz için, bunları bir yanıt yazıcısında yazmanız gerekir. Ve wbir yanıt yazarıdır. Bu sana mantıklı geliyor mu?
Salvador Dali

4
Orijinal poster, " istek başlığını özelleştirmek" istediğini söyledi . Örneğiniz yanıt başlığını özelleştiriyor .
Martin Del Vecchio
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.