在我的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);
});
我无法弄清楚为什么它不适用于第一个。有谁知道为什么?
由于
答案 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'
}
};