NodeJS中的HTTPS请求
我正在尝试编写一个NodeJS应用程序,它将使用https包中的请求方法与OpenShift REST API对话。 这里是代码:
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
我正在从服务器获得正确的响应。
代码中有什么错误吗?
比较哪些标题curl和节点发送,我发现添加:
headers: { accept: '*/*' }
修复它的options
。
要查看curl发送的标题,可以使用-v
参数。
curl -vIX GET https://openshift.redhat.com/broker/rest/api
在节点中,只console.log(req._headers)
在req.end()
之后的console.log(req._headers)
req.end()
。
快速提示:您可以使用https.get()
而不是https.request()
。 它会将方法设置为GET
,并为您调用req.end()
。