从节点访问rss端点时出现无法解释的500错误

时间:2016-03-09 08:34:04

标签: node.js curl rss node-request

我向rss Feed提出了一个简单的请求:

var request = require('request');
var req = request('http://www.govexec.com/rss/contracting/');

req.on('error', function (error) {
  console.log('error:',arguments);
});

req.on('response', function (res) {
  var stream = this;
  if (res.statusCode != 200) return this.emit('error', new Error('Bad status code'),res.statusCode);
});

输出为error: { '0': [Error: Bad status code], '1': 500 }

但是,如果我从浏览器中点击网址,或者执行简单的curl请求,我会得到正确的响应 curl 'http://www.govexec.com/rss/contracting/'

1 个答案:

答案 0 :(得分:2)

每个人说,这不是一个编程问题。

大多数网站都希望您根据自己的请求发送标题 user-agent 。对你提供的网站来说似乎也是这样。

修复此操作非常简单,因为您可以像这样使用包含用户代理:

var req = request({
    url:'http://www.govexec.com/rss/contracting/',
    headers: {
        'User-Agent': 'request'
    }
});