2013-04-24 11 views
25

मुझे पता है, कैसे उदाहरण के लिए, पेलोड में json अनुरोध पारित करने के लिए करना चाहता था में json डेटा पास जाना चाहिएमैं कैसे http पोस्ट अनुरोध के अनुरोध पेलोड

var post_data = {}; 

    var post_options = { 
     host: this._host, 
     path: path, 
     method: 'POST', 
     headers: { 
     Cookie : "session=" + session, 
      'Content-Type': 'application/json', 
      'Content-Length': post_data.length, 
     } 
    }; 

    // Set up the request 
    var post_req = http.request(post_options, function(res) { 
     res.setEncoding('utf8'); 
     res.on('data', function (chunk) { 
      console.log('========Response========: ' + chunk); 
     }); 
    }); 

    // post the data 
    post_req.write(post_data); 
    post_req.end(); 

धन्यवाद में मदद करता है के लिए। Prats

+0

क्या यह आपके प्रश्न का उत्तर देता है? http://stackoverflow.com/questions/4505809/how-to-post-to-a-request-using-node-js – exclsr

उत्तर

69

उपयोग request मॉड्यूल

npm install -S request

var request = require('request') 

var postData = { 
    name: 'test', 
    value: 'test' 
} 

var url = 'https://www.example.com' 
var options = { 
    method: 'post', 
    body: postData, 
    json: true, 
    url: url 
} 
request(options, function (err, res, body) { 
    if (err) { 
    console.error('error posting json: ', err) 
    throw err 
    } 
    var headers = res.headers 
    var statusCode = res.statusCode 
    console.log('headers: ', headers) 
    console.log('statusCode: ', statusCode) 
    console.log('body: ', body) 
}) 
+2

मैं यहां आपके साथ कुछ सत्यापित करना चाहता हूं। 'बॉडी: पोस्टडाटा' सही है या पोस्ट होना चाहिए डेटा को 'बॉडी: JSON.stringify (postData) में स्ट्रिंग किया जाना चाहिए; ? धन्यवाद। – Ric

+0

@ नोहा अगर मैं 'request.post (...)' का उपयोग करना चाहता हूं तो यह कैसे बदलता है? क्लाइंट एप्लिकेशन (एक इलेक्ट्रॉन ऐप) के अधिकांश अनुरोधों में जेएसओएन-आधारित निकायों को भेजा जाएगा, जिसमें मल्टीपार्ट निकायों का एकमात्र अपवाद होगा। मुझे एक्सप्रेस (सर्वर साइड) एप्लिकेशन में इस लाइब्रेरी और 'बॉडी पार्सर' सेटिंग्स का उपयोग करने के सही तरीके से आने में परेशानी हो रही थी। मैं 'app.use (bodyParser.json()) 'और' app.use (bodyParser.urlencoded ({विस्तारित: सत्य})) का उपयोग करता हूं; और अनुरोध तब तक पार्स करने में विफल रहे जब तक कि मैंने' विस्तारित 'को गलत में बदल दिया। यह सुनिश्चित नहीं है कि यह JSON अनुरोधों के लिए प्रासंगिक है, जो कि मेरे भ्रम का कारण है। –

+0

समर्थक समाधान आपको धन्यवाद –

1

बस एक स्ट्रिंग में बदल जाएंगे और भेजें।

post_req.write(JSON.stringify(post_data)); 
0

मैं इस कोशिश की और यह काम कर मूल प्रमाणीकरण की जरूरत होने के लिए तो मैं, प्रमाणन को शामिल किया है अगर आप आप इसे त्यागने कर सकते हैं इसकी आवश्यकता नहीं है लगता है।

var value = {email:"",name:""}; 

var options = { 
     url: 'http://localhost:8080/doc/', 
     auth: { 
      user: username, 
      password: password 
     }, 
     method :"POST", 
     json : value, 

    }; 

    request(options, function (err, res, body) { 
     if (err) { 
      console.dir(err) 
      return 
     } 
     console.dir('headers', res.headers) 
     console.dir('status code', res.statusCode) 
     console.dir(body) 
    }); 
संबंधित मुद्दे