2010-07-07 37 views
5

मैंने एपीआई को देखा लेकिन मुझे यह नहीं मिला।node.js POST अनुरोध

client.request() या client.request("POST" ,...) पर POST अनुरोध पर मुझे डेटा कैसे/कैसे रखा जाना चाहिए?

उत्तर

8

शायद आपको करीब देखना चाहिए।

यह सीधे Node.js API दस्तावेज़ों से है:

request_headers वैकल्पिक है। अतिरिक्त अनुरोध शीर्षलेख हो सकता है आंतरिक रूप से नोड द्वारा जोड़ा गया। ClientRequest ऑब्जेक्ट देता है।

सामग्री-लंबाई शीर्षलेख शामिल करना याद रखें यदि आप पर शरीर भेज रहे हैं। यदि आप शरीर को स्ट्रीम करने के लिए पर योजना बनाते हैं, तो शायद स्थानांतरण-एन्कोडिंग सेट करें: खंडित।

नोट: अनुरोध पूरा नहीं हुआ है। यह विधि केवल अनुरोध का शीर्षलेख भेजती है। अनुरोध को अंतिम रूप देने के लिए request.end() को कॉल करने की आवश्यकता है और प्रतिक्रिया पुनर्प्राप्त करें। (यह जटिल लगता है, लेकिन यह उपयोगकर्ता के लिए एक मौका request.write साथ सर्वर के लिए एक शरीर स्ट्रीम करने के लिए प्रदान करता है()।)

request.write() डेटा भेजने के लिए है।

तो आप इसे इस तरह (कम या ज्यादा) कार्य करें:

var rq = client.request('POST', 'http://example.org/', {'Content-Length': '1024'}); 
var body = getMe1024BytesOfData(); 

rq.write(body); 
rq.end(); 

इस कोड को भर में अवधारणा पाने के लिए सिर्फ यहाँ है। मैंने इसे किसी भी तरह से परीक्षण नहीं किया है।

+0

कि अगर आपकी शैली बेहतर – mm2001

+0

सच सूट आप भी rq.end (शरीर) कर सकते हैं, लेकिन मैं अलग विभिन्न प्रयोजनों के साथ चीजों को रखना पसंद: लिखना() आउटपुट और एंड() के लिए है ... अच्छी तरह से ... समाप्त हो रहा है। – selfawaresoup

+0

ऐसा लगता है कि v0.3.6 में बदल गया है। और बहुत अलग लगता है [अब v0.4.7 में) (http://nodejs.org/docs/v0.4.7/api/http.html#http.request) –

1

अधिक आसान क्लाइंट अनुरोधों के लिए आप request मॉड्यूल का उपयोग कर सकते हैं। यह सभी कड़ी मेहनत का ख्याल रखता है और इसमें एक साधारण एपीआई है।

0

आप Requestify का भी उपयोग कर सकते हैं, वास्तव में एक अच्छा और बहुत ही सरल HTTP क्लाइंट जो मैंने नोडजेएस + के लिए लिखा था, यह कैशिंग का समर्थन करता है।

बस एक पोस्ट अनुरोध को क्रियान्वित करने के लिए निम्न कार्य करें:

var requestify = require('requestify'); 

requestify.post('http://example.com', { 
    hello: 'world' 
}) 
.then(function(response) { 
    // Get the response body (JSON parsed or jQuery object for XMLs) 
    response.getBody(); 
}); 
संबंधित मुद्दे