2012-09-06 16 views
5

ब्राउज़र में, यदि मैं एक जीईटी अनुरोध भेजता हूं, तो अनुरोध इस दौरान कुकी भेज देगा। अब मैं नोड से एक जीईटी अनुरोध अनुकरण करना चाहता हूं, फिर कोड कैसे लिखूं?क्या मैं नोड में हेडर में कुकीज़ के साथ एक GET अनुरोध भेज सकता हूं?

उत्तर

13

आश्चर्यजनक request लाइब्रेरी कुकीज़ का उपयोग डिफ़ॉल्ट रूप से सक्षम किया जाता है। तुम बहुत (Github पेज से लिया गया) की तरह अपने खुद के भेज सकते हैं: आप देशी http:request() विधि के साथ यह करने के लिए चाहते हैं

var j = request.jar() 
var cookie = request.cookie('your_cookie_here') 
j.add(cookie) 
request({url: 'http://www.google.com', jar: j}, function() { 
    request('http://images.google.com') 
}) 
+1

लेकिन कोड केवल डिफ़ॉल्ट मॉड्यूल के साथ कैसा दिखता है? – jiyinyiyong

+0

आह: सुनिश्चित नहीं है। मैंने अपने अनुरोधों के लिए डिफ़ॉल्ट http क्लाइंट का उपयोग करने की कोशिश नहीं की है। – Femi

+0

मैंने अभी HTTP के बारे में और जानना शुरू कर दिया है। मुझे लगता है कि यदि डिफ़ॉल्ट 'http' मॉड्यूल में ऐसा करने का तरीका है, तो मैं इसके बारे में अधिक जानकारी जान सकता हूं। – jiyinyiyong

4

, आप उचित Set-Cookie हेडर निर्धारित करने की आवश्यकता (क्या के लिए एक HTTP संदर्भ देखें कि वे options तर्क के सदस्य में दिखना चाहिए; कुकीज़ से निपटने के लिए देशी कोड में कोई विशिष्ट विधि नहीं है। यदि आपको ठोस उदाहरणों की आवश्यकता है तो connect में connect में माइकल की request लाइब्रेरी में स्रोत कोड और cookieParser कोड का संदर्भ लें।

लेकिन फेमी लगभग निश्चित रूप से सही है: कुकीज़ से निपटना बल्कि नाटकीय विवरण से भरा है और आप लगभग हमेशा से लिखे गए कोड का उपयोग करने से बेहतर होने जा रहे हैं और अधिक महत्वपूर्ण रूप से परीक्षण किया गया है। यदि आप इस विशेष पहिया को फिर से शुरू करने का प्रयास करते हैं, तो आपको उस समय कोड के साथ आने की संभावना है जो ज्यादातर समय काम करता प्रतीत होता है, लेकिन कभी-कभी और अप्रत्याशित रूप से रहस्यमय तरीके से विफल रहता है।

0
var jar = request.jar(); 
const jwtSecret = fs.readFileSync(`${__dirname}/.ssh/id_rsa`, 'utf8'); 
const token = jwt.sign(jwtPayload, jwtSecret, settings); 
jar.setCookie(`any-name=${token}`, 'http://localhost:12345/'); 
const options = { 
    method: 'GET', 
    url: 'http://localhost:12345', 
    jar, 
    json: true 
}; 
request(options, handleResponse); 
+0

कृपया अपने उत्तर के बारे में अधिक विवरण और/या जानकारी जोड़ें और यह पूछे जाने वाले समस्या को कैसे हल करता है ताकि अन्य स्पष्टीकरण मांगे बिना आसानी से इसे समझ सकें – koceeng

संबंधित मुद्दे