Can';t调用方法";“请求”;在/usr/share/perl5/LWP/UserAgent.pm第563行的未定义值上

Can';t调用方法";“请求”;在/usr/share/perl5/LWP/UserAgent.pm第563行的未定义值上,perl,web,Perl,Web,在我的perl脚本中,我想通过设置$mech->redirect\u ok(0)来停止重定向页面; 但我得到了以下错误:- 无法在/usr/share/perl5/LWP/UserAgent.pm第563行的未定义值上调用方法“request” perl程序如下所示,供您参考 #!/usr/bin/perl -w use utility; use WWW::Mechanize; $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; binmode(STDOUT, "

在我的perl脚本中,我想通过设置$mech->redirect\u ok(0)来停止重定向页面; 但我得到了以下错误:- 无法在/usr/share/perl5/LWP/UserAgent.pm第563行的未定义值上调用方法“request”

perl程序如下所示,供您参考

#!/usr/bin/perl -w

use utility;
use WWW::Mechanize;

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
binmode(STDOUT, ":utf8");

my $mech = WWW::Mechanize->new( autocheck => 1 );

my $num_args = $#ARGV + 1;
if ($num_args != 2) {
  print "\nUsage: ./my_script.pl username password\n\n";
  exit;
}

my $username = $ARGV[0];
my $password = $ARGV[1];

$username = main::trim ($username);
$password = main::trim ($password);

$mech->credentials( $username => $password );
$mech->redirect_ok(0);
$mech->get( '<home page of the web address>.jspa' );
print $mech->content();
#/usr/bin/perl-w
使用效用;
使用WWW::Mechanize;
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;
binmode(标准输出,“:utf8”);
我的$mech=WWW::Mechanize->new(自动检查=>1);
我的$num#u args=$#ARGV+1;
如果($num_args!=2){
打印“\n用法:./my\u script.pl用户名密码\n\n”;
出口
}
我的$username=$ARGV[0];
我的$password=$ARGV[1];
$username=main::trim($username);
$password=main::trim($password);
$mech->凭证($username=>$password);
$mech->重定向\确定(0);
$mech->get('.jspa');
打印$mech->content();

请建议……

重定向\u ok
是LWP内部调用的回调函数,用于发现特定重定向是否可接受。它通过子类化
LWP
和重载
redirect\u ok
来对请求和响应执行更复杂的测试

该方法采用两个参数,一个
HTTP::Request
和一个
HTTP::Response
。您将零作为
HTTP::Request
传递,将
undef
作为
HTTP::Response
传递。零对于用户代理
request
方法来说是无用的参数,因此程序崩溃

我不清楚到底需要什么,但要禁用所有重定向,应该使用
请求\u redirectable
方法,该方法获取对重定向有效的HTTP请求类型列表。默认情况下,它设置为

$mech->requests_redirectable([qw/ GET HEAD /]);
因此,只有一个帖子重定向将被拒绝。要防止所有请求类型的重定向,请像下面这样传递一个空列表

$mech->requests_redirectable([]);

谢谢你,博罗丁。我尝试了$mech->requests_redirectable([]);拒绝重定向。现在我没有从url获取任何内容。我试着调试它,但还是不知道为什么?你能帮我一下吗。提前谢谢。