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

Node.js 从节点访问rss端点时出现无法解释的500错误,node.js,curl,rss,node-request,Node.js,Curl,Rss,Node Request,我向rss提要发出了一个简单的请求: 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;

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

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);
});
输出为
错误:{0':[error:错误状态代码],'1':500}

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

据说,这不是编程问题

大多数网站确实希望您将标题用户代理与您的请求一起发送。你提供的网站似乎也是这样

解决这一问题很简单,因为您可以像这样使用include用户代理:

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

据说,这不是一个编程问题

大多数网站确实希望您将标题用户代理与您的请求一起发送。你提供的网站似乎也是这样

解决这一问题很简单,因为您可以像这样使用include用户代理:

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

如果是这种情况,则从
http://www.govexec.com/rss/contracting/
有误导性,响应代码应该是4xx表示客户端错误,而不是5xx表示服务器错误。@AlexChesters,他们发送的是500,我想这是他们软件中的问题。对此我无能为力。正确,所以我相信你的答案是,你可以通过发送一个用户代理来解决这个问题incorrect@AlexChesters,我已经检查过了,当发送一个user-agent.interest@Andrius,似乎API的设计很差,因为它是一个客户端错误而发送500响应代码。如果是这种情况,那么从
http://www.govexec.com/rss/contracting/
有误导性,响应代码应该是4xx,表示客户端错误,而不是5xx,表示服务器错误。@AlexChesters,他们发送的是500,我想这是他们软件中的一个问题。对此我无能为力。正确,所以我相信你的答案是,你可以通过发送一个用户代理来解决这个问题incorrect@AlexChesters,我已经检查过了,当发送一个user-agent.interest@Andrius时,它就可以工作了。在API上,发送500个响应代码来表示什么是客户端错误似乎设计得很糟糕。