HTTP में हेडर कैसे सेट करें अनुरोध प्राप्त करें?


152

मैं गो में एक साधारण http GET कर रहा हूं:

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

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

जवाबों:


233

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

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

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

गो के नेट / http पैकेज में कई कार्य हैं जो हेडर के साथ काम करते हैं । इनमें Add , Del , Get और Set Method हैं। सेट का उपयोग करने का तरीका है:

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.