2012-10-12 97 views
46

我正在嘗試編寫一個NodeJS應用程序,它將使用https包中的請求方法與OpenShift REST API進行通信。下面是代碼:NodeJS中的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做同樣的事情時,

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

我從服務器獲得正確的響應。

代碼中有什麼問題嗎?

回答

45

比較的http頭捲曲和節點發送,我發現,添加:

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