2012-10-29 17 views
9

में किसी अन्य सेवा के लिए https अनुरोध भेजने के चरण नोड जेएस में किसी अन्य सेवा में https अनुरोध भेजने के चरण क्या हैं? मैं एक API https://133-70-97-54-43.sample.com/feedSample/Query_Status_View/Query_Status/Output1?STATUS=Joined%20schoolनोड जेएस

की तरह सामने आ रहा है कैसे अनुरोध पारित करने के लिए और विकल्प मैं मेजबान, बंदरगाह, पथ और विधि की तरह इस एपीआई के लिए देने की आवश्यकता क्या है?

उत्तर

13

request मॉड्यूल का उपयोग करने का सबसे आसान तरीका है।

request('https://example.com/url?a=b', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    console.log(body); 
    } 
}); 
+0

हाय ज़ीमिरको, जोश, डेविड। आप सभी का धन्यवाद। मुझे नीचे समाधान मिला है। यह जोश के समान है। – vinod

+0

अगर हम शरीर को किसी अन्य समारोह में पास करना चाहते हैं, तो हम इसे कैसे कर सकते हैं? कृपया स्पष्ट करें। –

0

आप superagent और नोड के url मॉड्यूल उपयोग करती हैं इसलिए तरह के अनुरोध का निर्माण कर सकते हैं:

var request = require('superagent'); 
var url = require('url'); 

var urlObj = { 
    protocol: 'https', 
    host: '133-70-97-54-43.sample.com', 
    pathname: '/feedSample/Query_Status_View/Query_Status/Output1' 
}; 

request 
    .get(url.format(urlObj)) 
    .query({'STATUS': 'Joined school'}) 
    .end(function(res) { 
    if (res.ok) { 
     console.log(res.body); 
    } 
    }); 
22

सिर्फ https.request समारोह के साथ मुख्य https मॉड्यूल का उपयोग करें। एक POST अनुरोध के लिए उदाहरण (GET समान होगा):

var https = require('https'); 

var options = { 
    host: 'www.google.com', 
    port: 443, 
    path: '/upload', 
    method: 'POST' 
}; 

var req = https.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
    res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk); 
    }); 
}); 

req.on('error', function(e) { 
    console.log('problem with request: ' + e.message); 
}); 

// write data to request body 
req.write('data\n'); 
req.write('data\n'); 
req.end(); 
+0

उपर्युक्त संपादित - https (!) के बारे में था - हमें var https = आवश्यकता ('https') की आवश्यकता है; – sebilasse

+0

मैं वही करता हूं लेकिन सॉकेट को गलती हुई त्रुटि मिल गई। ऐसा लगता है कि टीएलएस असफल रहा। – MDK

+0

और या तो अनुरोध मॉड्यूल एक ही त्रुटि फेंक देता है और जब मैं SSLv3_methods का उपयोग करता हूं तो SSLv3 अक्षम त्रुटि प्राप्त होती है। मैंने वास्तव में नोडजेस के साथ एक सामान्य एसएसएल/टीएलएस अनुरोध भेजने में लगाया। – MDK

4

अनुरोध मॉड्यूल का उपयोग करते हुए इस मुद्दे को हल किया।

// Include the request library for Node.js 
var request = require('request'); 
// Basic Authentication credentials 
var username = "vinod"; 
var password = "12345"; 
var authenticationHeader = "Basic " + new Buffer(username + ":" + password).toString("base64"); 
request( 
{ 
url : "https://133-70-97-54-43.sample.com/feedSample/Query_Status_View/Query_Status/Output1?STATUS=Joined%20school", 
headers : { "Authorization" : authenticationHeader } 
}, 
function (error, response, body) { 
console.log(body); } );   
संबंधित मुद्दे