2013-08-27 24 views
9

मैंने देखा है कि एक कुकी के साथ अनुरोध कैसे करें, और मैंने देखा है कि एकाधिक कुकीज़ के साथ प्रतिक्रिया कैसे लिखनी है, लेकिन क्या कोई जानता है कि कैसे लिखना है एकाधिक 'कुकी' हेडर के साथ http मॉड्यूल (यदि संभव हो) का उपयोग कर node.js में अनुरोध करें?एक नोड.जेएस अनुरोध में एकाधिक 'कुकी' हेडर

अभी तक नोड.जेएस में अनुरोध करने के लिए मैंने देखा है कि एक ऑब्जेक्ट को किसी फ़ंक्शन के पैरामीटर के रूप में पास करने में शामिल है, जिसमें दो समान कुंजी होने की आवश्यकता होगी।

headers = { 
    Cookie: firstCookie, 
    Cookie: secondCookie 
} 

तो काम नहीं करेगा।

यह एक node.js सवाल है, लेकिन मुझे http के साथ बेहद आत्मविश्वास नहीं है, इसलिए मुझे यकीन नहीं है कि शीर्षलेख में दो अलग-अलग कुकीज़ सेट करने का कोई तरीका नहीं है। क्या दोनों को एक ही शीर्षलेख में जोड़ना संभव है? क्या दो अलग-अलग परिभाषित कुकीज़ के साथ अनुरोध एक से एक ही शीर्षलेख के साथ भिन्न होता है?

+0

एपीआई प्रतिक्रिया हेडर हेडर का अनुरोध नहीं लिखने के लिए है कि – twinlakes

उत्तर

11

आपके द्वारा जोड़ा गया 'कुकी' संपत्ति आपके HTTP अनुरोध में प्रत्यक्ष शीर्षलेख है। इसके अलावा बजाय NodeJS जो आम तौर पर आप बॉयलरप्लेट के बहुत सारे लिख कर देगा देशी HTTP ग्राहक का उपयोग करने का

var headers = { 
    Cookie: 'key1=value1; key2=value2' 
} 

,: आप केवल एक 'कुकी' शीर्षक ठीक से एक वैध कुकी शीर्ष लेख स्ट्रिंग के लिए, उस तरह का उपयोग करें और अपनी कुकी इनकोड करना चाहिए कोड, मैं तुम्हें .. Requestify की तरह एक बहुत सरल बनाया पुस्तकालय का उपयोग करने की सिफारिश करेंगे

इस तरह आप requestify का उपयोग कर कुकीज़ के साथ एक HTTP अनुरोध कर सकते हैं:

var requestify = require('requestify'); 

requestify.get('http://example.com/api/resource', { 
    cookies: { 
     'key1': 'val1', 
     'key2': 'val2',  
    } 
}) 
    .then(function(response) { 
     // Get the response body (JSON parsed or jQuery object for XMLs) 
     response.getBody(); 
    } 
); 
+0

जो कुछ मैं ढूंढ रहा हूं, वैसे ही ध्वनि की पुष्टि करें, लेकिन मेरी परियोजनाएं पहले ही http के साथ लिखी गई हैं, इसलिए मैंने आपके पहले जवाब का उपयोग किया। धन्यवाद – twinlakes

+0

खुशी है कि मैं मदद कर सकता हूं (-: – ranm8

-3

देशी Node.js लाइब्रेरी का उपयोग करने के बजाय, आप कर्ल प्रक्रिया चलाने के लिए child_process.exec का उपयोग कर सकते हैं और किसी भी प्रकार के अनुरोध करने के लिए बदले में stdout प्राप्त कर सकते हैं।

+5

वाह। भयानक विचार, क्योंकि यह बुरी तरह से स्केल करता है। –

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