我希望获得一些在身份验证后可用的数据。我在页面http://site.domain.com/auth.html上传递了一个帖子登录名和密码,我想从另一个页面获取html http://site.domain.com/anotherpage.html
request.post({followAllRedirects: true, url:'http://site.domain.com/auth.html', form:{user:'login@domain.com', pass:'password'}},
function (error, response, body) {
if (!error) {
request('http://site.domain.com/anotherpage.html', function(error, response, html){
fs.appendFileSync('log.txt', html, encoding='utf8');
});
}
});
正常进行身份验证(带有问候语的html中有一条消息),请求后我获取数据,就好像未通过身份验证一样。
修正结果:
var j = request.jar(); var request = request.defaults({jar:j});
然后是我的代码
答案 0 :(得分:0)
通常,在网络中,身份验证信息作为cookie存储在用户的浏览器中。因为这是一个服务器请求,我不认为两个"无关"请求将削减它,因为没有与第一请求有关的头信息与第二请求一起被发送。也许您可以尝试使用this策略或其他类似的程序来模仿标题交互。
答案 1 :(得分:0)
我找到了一个解决方案,我把我的代码放在首位,这些行
var j = request.jar(); var request = request.defaults({jar:j});
jar - 如果是,请记住cookie以备将来使用(或定义自定义cookie jar;