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.