我正在编写一个http客户端,使用node.js从facebook上读取并使用以下代码:
var http = require('http');
var options = {
host: 'www.fb.com',
path: '/',
"user-agent": "node.js"
};
http.get(options, function(res) {
console.log("Got response: " + res.statusCode);
console.log(res.headers);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
在我的浏览器中,这将返回301重定向,其中包含www.facebook.com的位置,但在node.js中,我得到302响应,其位置为www.fb.com/common/browser.php。 我尝试使用最新版本的节点,它仍然会抛出此错误。
我真的很感激这方面的帮助, 感谢。
答案 0 :(得分:26)
var request_options =
{
host: 'www.fb.com',
headers: {'user-agent': 'Mozilla/5.0'},
path: '/'
};
以这种方式设置请求选项应该有效。
答案 1 :(得分:3)
这个剂量似乎是node.js的一个bug我在curl中向fb.com提出了请求,我得到了同样的重定向。
它可能基于用户代理做出决定...也许您可以使用浏览器的用户代理:D