2012-10-12 16 views
46

में HTTPS अनुरोध मैं एक नोडजेएस ऐप लिखने की कोशिश कर रहा हूं जो https पैकेज में अनुरोध विधि का उपयोग कर ओपनशफ्ट आरईएसटी एपीआई से बात करेगा। यहां कोड है:नोडजेएस

var https = require('https'); 

var options = { 
    host: 'openshift.redhat.com', 
    port: 443, 
    path: '/broker/rest/api', 
    method: 'GET' 
}; 

var req = https.request(options, function(res) { 
    console.log(res.statusCode); 
    res.on('data', function(d) { 
    process.stdout.write(d); 
    }); 
}); 
req.end(); 

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

लेकिन यह मुझे एक त्रुटि दे रहा है (स्थिति कोड 500 लौटाया गया है)। जब मैंने कमांड लाइन पर कर्ल का उपयोग करके वही किया,

curl -k -X GET https://openshift.redhat.com/broker/rest/api 

मुझे सर्वर से सही प्रतिक्रिया मिल रही है।

क्या कोड में कुछ गड़बड़ है?

उत्तर

45

तुलना क्या कर्ल और नोड भेजा हेडर, मैंने पाया कि जोड़ने:

headers: { 
    accept: '*/*' 
} 

options के लिए यह तय हो गई।


कर्ल भेजता है जो शीर्षक देखने के लिए, आप -v तर्क का उपयोग कर सकते हैं।
curl -vIX GET https://openshift.redhat.com/broker/rest/api

नोड में, बस req.end() के बाद console.log(req._headers)


त्वरित टिप: आप https.request() के बजाय https.get() उपयोग कर सकते हैं,। यह GET पर विधि सेट करेगा, और आपके लिए req.end() पर कॉल करेगा।

+0

'curl -vix GET' के लिए धन्यवाद – btk

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