2012-10-12 11 views
57

मैं जाओ में एक साधारण HTTP GET कर रहा हूँ:http में हेडर सेट करने के लिए अनुरोध कैसे प्राप्त करें?

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

लेकिन मैं doc में अनुरोध हेडर अनुकूलित करने के लिए एक तरह से नहीं मिला सकते हैं, धन्यवाद

उत्तर

97

अनुरोध के Header क्षेत्र सार्वजनिक है । आप ऐसा कर सकते हैं:

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

जाओ का शुद्ध/http पैकेज कई functions that deal with headers है। उनमें से Add, Del, Get और Set विधियां हैं। जिस तरह से सेट का उपयोग करने के लिए है: http.Request हैडर "मेजबान" में Set विधि

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

के माध्यम से निर्धारित नहीं कर सकते

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

किस प्रकार का डब्ल्यू है? –

+0

@ ईश्वर यज्ञती आप हेडर भेज रहे हैं? आपको 'r * http.Request' मिलता है और 'w http.ResponseWriter' में कुछ वापस लौटाता है। तो शायद क्योंकि आप हेडर लौट रहे हैं, आपको उन्हें प्रतिक्रिया लेखक में लिखना होगा। और 'डब्ल्यू' एक प्रतिक्रिया लेखक है। क्या यह आपके लिए तार्किक लग रहा है? –

6

वेतन ध्यान कि हो लेकिन सीधे सेट किया जा सकता:

req.Host = "domain.tld":

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

req.Host = "domain.tld" 

resp, err := http.Client.Do(req) 
संबंधित मुद्दे