问题与节点js的http GET请求

即时通讯编写一个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); }); 

在我的浏览器中,这将返回一个301redirect与www.facebook.com的位置,但是在node.js中,我得到一个302响应,位置为www.fb.com/common/browser.php。 我尝试了最新版本的节点,它仍然会抛出这个错误。

我真的很感谢这个帮助,谢谢。

这剂量似乎是node.js的一个bug我向curb请求了fb.com,并且得到了同样的redirect。

这可能是基于用户代理的决定…也许你可以使用浏览器的用户代理:D

 var request_options = { host: 'www.fb.com', headers: {'user-agent': 'Mozilla/5.0'}, path: '/' }; 

以这种方式设置请求选项应该工作。