【发布时间】:2011-07-30 08:48:25
【问题描述】:
我正在编写一个 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);
});
在我的浏览器中,这会返回带有 www.facebook.com 位置的 301 重定向,但是在 node.js 中,我会收到带有 www.fb.com/common/browser.php 位置的 302 响应。 我用最新版本的node试了一下,还是报这个错误。
非常感谢您对此提供的帮助, 谢谢。
【问题讨论】:
-
我意识到问题出在哪里。我没有使用 http.client 发出请求。我猜客户端处理keepalive响应和cookie并将其抽象出来。 HTTP GET 每次发送一个新的请求,请求之间不维护状态。所以 fb.com 必须做类似的事情,如果 cookie 未设置重定向到 fb.com 并设置 cookie。我可能需要更多的启发。但故事的寓意......使用 http.client 发出请求。你会得到正确的行为