从节点访问 rss 端点时出现莫名其妙的 500 错误
Getting an inexplicable 500 error when accessing rss endpoint from node
我正在向 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);
});
输出为error: { '0': [Error: Bad status code], '1': 500 }
但是,如果我从浏览器中点击 url,或者执行一个简单的 curl 请求,我会得到正确的响应
curl 'http://www.govexec.com/rss/contracting/'
据说这不是编程问题。
大多数网站都希望您随请求一起发送 header user-agent。你提供的网站好像也是这样。
解决这个问题很简单,因为您可以像这样使用 include user-agent:
var req = request({
url:'http://www.govexec.com/rss/contracting/',
headers: {
'User-Agent': '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;
if (res.statusCode != 200) return this.emit('error', new Error('Bad status code'),res.statusCode);
});
输出为error: { '0': [Error: Bad status code], '1': 500 }
但是,如果我从浏览器中点击 url,或者执行一个简单的 curl 请求,我会得到正确的响应
curl 'http://www.govexec.com/rss/contracting/'
据说这不是编程问题。
大多数网站都希望您随请求一起发送 header user-agent。你提供的网站好像也是这样。
解决这个问题很简单,因为您可以像这样使用 include user-agent:
var req = request({
url:'http://www.govexec.com/rss/contracting/',
headers: {
'User-Agent': 'request'
}
});