私のホストのログインページを認証するために、プラグインWWW::Scripter(サブクラスはWWW::Mechanize)を使用しています。彼らはRuby
とJavaScript
の機能をログインページに使用しているので、LWP::Agent
モジュールを使用することはできません。ここでは、コードは次のようになります。WWW :: Scripterの認証に関する問題
#!/usr/bin/env perl
use strict;
use warnings;
use diagnostics;
use LWP::Debug qw(+);
use LWP::ConnCache;
use WWW::Scripter;
my $url = 'https://control.vp.net/login';
my $username = '[email protected]';
my $password = 'example';
my $w = WWW::Scripter->new(keep_alive => 1) or die "error1: $!\n";
$w->conn_cache(LWP::ConnCache->new);
$w->use_plugin('JavaScript') or die "error2: $!\n";
$w->credentials($url, undef, $username, $password) or die "error3: $!\n";
$w->get($url) or die "error4: $!\n";
print $w->content() or die "error5: $!\n";
私は次のようなエラーが生じています:
Uncaught exception from user code:
error3
私はグーグル時間数を費やしていると私は私は本当に今、あなたの助けの一部を必要と感じています。なぜ私が認証できないのかを理解する助けに感謝します。私のPerlのバージョンは、Ubuntu 11の場合は5.10.1です。
ありがとうございました。
更新
私はにコード内の1行を変更しました:
$w->credentials($username, $password) or die "error3: $!\n";
、今ちょうど白ページを取得します。私は診断プラグマを有効にすると、むしろ一般的なエラーが表示されます。
Use of uninitialized value in subroutine entry at blib/lib/Net/SSLeay.pm
(autosplit into blib/lib/auto/Net/SSLeay/randomize.al) line 2227 (#1)
(W uninitialized) An undefined value was used as if it were already
defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
To suppress this warning assign a defined value to your variables.
'$ w->資格($ username、$ password)'、 '$ url、undef'を使用しないでください。クラス 'WWW :: Scripter'は' WWW :: Mechanize'のサブクラスですので、 'credentials'のドキュメンテーションについてはhttp://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize.pmを参照してください。 –
返信いただきありがとうございます。私は自分の投稿を更新しました。ホワイトページのトラブルシューティングにお役立てください。 – Andrew
正しい '$ url'を使用していますか?一時的に '$ w-> use_plugin( 'JavaScript')行を削除するか、error2:$!\ n"; "で終了して、そのページのスクリプトの結果として白いページを取得しているかどうかを調べるか、ページ内容。 –