node.js-NodeJ中的HTTPS请求

我正在尝试编写一个NodeJS应用,该应用将使用https包中的request方法与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

我从服务器得到正确的响应。

代码有什么问题吗?

ssb asked 2020-01-13T13:23:53Z
1个解决方案
47 votes

比较什么头卷曲和节点发送,我发现添加:

headers: {
    accept: '*/*'
}

https.get()修复了它。


若要查看curl发送的标头,可以使用2700865799027426426304参数。
https.request()

在节点中,只有https.request()305之后是https.get()


快速提示:您可以使用https.get()而不是https.request()。它将设置方法为GET,并为您呼叫req.end()

MiniGod answered 2020-01-13T13:24:33Z
translate from https://stackoverflow.com:/questions/12851858/https-request-in-nodejs