Https请求在node.js中不起作用

时间:2017-09-28 20:22:53

标签: javascript node.js api http https

在我的node.js应用中,我想进行https api调用。我正在尝试使用https模块并且它无法正常工作,但我尝试使用request模块,这样就可以了。

无法正常工作

var options = {
    host : 'myserver/platform-api/v1',
    port : 80,
    path : '/projects?access_token=38472',
    method : 'GET',
    headers : {
        'Accept' : 'application/json'
    }
};
var req = https.request(options, function(res) {
    res.on('data', function(chunk) {
        console.log(chunk);
    });
});
req.on('error', function(e) {
    console.log(e);
    console.log('problem with request:', e.message);
});
req.end();

我明白了

problem with request: getaddrinfo ENOTFOUND myserver/platform-api/v1
 myserver/platform-api/v1:80

这是有效的

request("https://myserver/platform-api/v1/projects?access_token=38472", function(error, response, body) {
    if (error) return console.log(error);
    //console.log(error);
    //console.log(response);
    console.log(body);
});

我无法弄清楚为什么它不适用于第一个。有谁知道为什么?

由于

2 个答案:

答案 0 :(得分:2)

此外,您正在访问端口80,它通常不是HTTPS端口。

答案 1 :(得分:1)

编辑也切换到443端口。

您的host似乎包含了部分路径?请尝试这样做(只留下host中的主机并将路径移至path):

var options = {
    host : 'myserver',
    port : 443,
    path : '/platform-api/v1/projects?access_token=38472',
    method : 'GET',
    headers : {
        'Accept' : 'application/json'
    }
};