2012-10-12 5 views
57

Ich mache ein einfaches http-GET in Go:Wie setze ich Header in http get Anfrage?

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

Aber ich kann nicht einen Weg anpassen, um die Request-Header in den doc dank

Antwort

97

Das Header Feld der Anfrage ist öffentlich gefunden . Sie können dies tun:

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

Go net/http Paket viele functions that deal with headers hat. Unter diesen sind Add, Del, Get und Set Methoden. Die Art und Weise Set zu verwenden ist:

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

welcher Typ ist w? –

+0

@EswarYaganti Wie senden Sie die Header? Sie erhalten eine 'r * http.Request' und geben etwas in' w http.ResponseWriter' zurück. Wahrscheinlich, weil Sie Header zurückgeben, müssen Sie sie in einem Antwortschreiber schreiben. Und "w" ist ein Antwortschreiber. Sieht das für Sie logisch aus? –

6

Darauf achten, dass in http.Request Header "Host" kann nicht über Set Methode

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

aber direkt eingestellt werden können eingestellt werden:

:

req, err := http.NewRequest("GET", "http://10.0.0.1/", nil) 
if err != nil { 
    ... 
} 

req.Host = "domain.tld" 

resp, err := http.Client.Do(req) 
Verwandte Themen