2016-11-10 7 views
5

मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसके लिए https प्राप्त करने और पोस्ट विधियों की आवश्यकता है। मैं एक छोटी https.get समारोह यहाँ काम ... मिल गया हैमैं किसी भी तृतीय पक्ष मॉड्यूल के बिना नोड जेएस में एक https पोस्ट कैसे बना सकता हूं?

const https = require("https"); 

function get(url, callback) { 
    "use-strict"; 
    https.get(url, function (result) { 
     var dataQueue = "";  
     result.on("data", function (dataBuffer) { 
      dataQueue += dataBuffer; 
     }); 
     result.on("end", function() { 
      callback(dataQueue); 
     }); 
    }); 
} 

get("https://example.com/method", function (data) { 
    // do something with data 
}); 

मेरे समस्या नहीं https.post वहाँ है और मैं पहले से ही https मॉड्यूल How to make an HTTP POST request in node.js? के साथ यहाँ http समाधान की कोशिश की है लेकिन सांत्वना त्रुटियों देता है।

मुझे अपने ब्राउज़र में अजाक्स के साथ उसी एपीआई में प्राप्त करने और पोस्ट करने में कोई समस्या नहीं है। मैं क्वेरी जानकारी भेजने के लिए https.get का उपयोग कर सकता हूं लेकिन मुझे नहीं लगता कि यह सही तरीका होगा और मुझे नहीं लगता कि अगर मैं विस्तार करने का निर्णय लेता हूं तो यह बाद में फ़ाइलों को भेजने में काम करेगा।

क्या कोई न्यूनतम उदाहरण है, न्यूनतम आवश्यकताओं के साथ, https.request बनाने के लिए https.post क्या होगा यदि कोई था? मैं एनपीएम मॉड्यूल का उपयोग नहीं करना चाहता।

उत्तर

18
उदाहरण के लिए

, इस तरह:

const querystring = require('querystring');                                                 
const https = require('https'); 

var postData = querystring.stringify({ 
    'msg' : 'Hello World!' 
}); 

var options = { 
    hostname: 'posttestserver.com', 
    port: 443, 
    path: '/post.php', 
    method: 'POST', 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded', 
     'Content-Length': postData.length 
    } 
}; 

var req = https.request(options, (res) => { 
    console.log('statusCode:', res.statusCode); 
    console.log('headers:', res.headers); 

    res.on('data', (d) => { 
    process.stdout.write(d); 
    }); 
}); 

req.on('error', (e) => { 
    console.error(e); 
}); 

req.write(postData); 
req.end(); 
+3

अच्छा जवाब @aring। यदि आप JSON भेजना चाहते हैं, तो निम्न को बदलें: '' 'var postData = JSON.stringify ({msg: 'हैलो वर्ल्ड!'})' ' और ' ''सामग्री-प्रकार': 'एप्लिकेशन/json'''' – loonison101

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

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