节点js上的http GET请求出现问题

时间:2011-07-30 08:48:25

标签: http node.js

我正在编写一个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。 我尝试使用最新版本的节点,它仍然会抛出此错误。

我真的很感激这方面的帮助, 感谢。

2 个答案:

答案 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