我正在使用这个API来使用ESPN API:
http://api.espn.com/v1/now?apikey=d4skkma8kt2ac8tqbusz38w6
在Node.js中,使用node-curl
库,我的代码片段看起来像这样:
var Curl = require('node-curl/lib/Curl')
curl.setopt('URL', url);
curl.setopt('CONNECTTIMEOUT', 2);
curl.on('data', function(chunk) {
console.log(chunk);
});
但是每次当我运行这段代码时,我总是得到如下响应:
<h1>596 Service Not Found</h1>
奇怪的是,相同的URL,如果我从浏览器点击,我得到正确的响应,所以URL不是无效的。只有当我尝试从Node.js调用时才会发生这种情况。谁能指导我如何解决这个错误?我尝试编码/解码url,仍然得到相同的响应。
而且基本上我尽可能避免任何特定于供应商的库,因为我们应该有通用的api调用框架
您可以使用request,这是一个非常流行的模块。下面是一个示例:
var request = require('request');
var url = 'http://api.espn.com/v1/now?apikey=d4skkma8kt2ac8tqbusz38w6';
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(JSON.parse(body));
}
});