Я использую плагин 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 5.10.1 на Ubuntu 11, если это имеет значение.
Спасибо.
Update
Я изменил одну строку в коде:
$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-> credentials ($ username, $ password)', no '$ url, undef'. Класс 'WWW :: Scripter' является подклассом' WWW :: Mechanize', поэтому см. Http://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize.pm для документации 'credentials' –
Благодарим вас за ответ. Я обновил свой пост. Не могли бы вы помочь устранить белую страницу? – Andrew
Вы используете правильный '$ url'? Временно удалите строку '$ w-> use_plugin ('JavaScript') или умрите« error2: $! \ N »;', чтобы узнать, получаете ли вы белую страницу в результате какого-либо скрипта с этой страницы или просто потому, что это содержимое страницы. –