如何在Perl中读取页面时去掉HTTP 302状态代码?

如何在Perl中读取页面时去掉HTTP 302状态代码?,perl,http,http-status-code-302,lwp-useragent,Perl,Http,Http Status Code 302,Lwp Useragent,我正在尝试获取需要使用LWP::UserAgent进行身份验证的网页内容。但是,我的状态为302已找到,文档已移到此处 我添加了push@{$uagent->requests_redirectable},'GET';声明,但没有帮助 下面是我的代码: use strict; use warnings; use LWP::UserAgent; my $userid = "iamuser"; my $password = "thisispassword"; my $url = "http://so

我正在尝试获取需要使用LWP::UserAgent进行身份验证的网页内容。但是,我的状态为302已找到,文档已移到此处

我添加了push@{$uagent->requests_redirectable},'GET';声明,但没有帮助

下面是我的代码:

use strict;
use warnings;
use LWP::UserAgent;

my $userid = "iamuser";
my $password = "thisispassword";
my $url = "http://some_website-requires-authentication";

my $uagent = new LWP::UserAgent();
push @{ $uagent->requests_redirectable }, 'GET';

my $req = HTTP::Request->new(GET=>"$url");
$req->authorization_basic($userid,$password);

my $response = $uagent->request($req);
print $response->status_line, "\n";
print $response->headers->as_string;
输出:

302发现 缓存控制:没有存储 连接:保持活力 日期:2018年8月11日星期三04:43:10 GMT 位置:HTTP://my_url.website.com/page/bag 服务器:网站 内容长度:239 内容类型:text/html;字符集=iso-8859-1 客户日期:星期三,格林威治标准时间11:04:43:11 客户端对等: 客户端响应编号:1 客户端SSL证书颁发者:/CGB/ST=Larer Urban/L=Reds/O=COKPO CB insurance/CN=执行安全SDL 客户端SSL证书主题:/C=UKBopp驱动器/O=te合并/OU=cuper/CN=hula.website.com 客户端SSL密码:AES128-SHA 客户端SSL套接字类:IO::Socket::SSL 客户端警告:检测到重定向循环max\u Redirect=7 保持活动状态:超时=5,最大=91 设置Cookie:blabla 严格的运输安全:最大年龄=31536000 标题:302找到 X帧选项:拒绝 我做错了什么需要帮助吗?
提前感谢。

您收到的标题之一是

客户端警告:检测到重定向循环max\u Redirect=7 LWP检测到它处于无止境的重定向链中,并中止。网站可能依赖于返回它提供的cookie,但是您没有为代理创建cookie jar来允许它这样做

替换

my $uagent = LWP::UserAgent->new();


默认情况下获取重定向,无需添加。可能您达到了最大重定向限制默认值7?查看响应,看看它是否真的在重定向?您确实明白,您所做的是为少数使用基于http标头的身份验证的网站所做的,并且对于具有登录表单的更常见的网站来说,它不起作用,对吗?@ysth谢谢。响应称文档已与302状态代码一起移动到此处,甚至删除$uagent->request\u redirectable也没有帮助。请提供响应标题$response->headers->as\u字符串。随意混淆私人信息,用其他词语替换私人词语,但不要删除anything@ikegami它表示授权:Basic ui0ow00d0dbu3nykljdimd==用户代理:libwww perl/6.13
my $uagent = LWP::UserAgent->new( cookie_jar => {} );