Forum Webscript.Ru
Программирование => Perl => Тема начата: NeuroniX от 09 Октября 2003, 22:58:11
-
Люди ! Помогите справиться со скриптом !
Вот кусок кода:
$ua = LWP::UserAgent->new(agent => "NeuroCC (0.1-dev/Linux)",
keep_alive => 1,
);
$ua->proxy(\'http\', "$proxyAddr") if $useProxy;
$ua->cookie_jar( HTTP::Cookies->new( file => "/var/www2/webroot/cgi-perl/control-system/cookies.txt", autosave => 1, ignore_discard =>1));
$response = $ua->request(POST \'http://passport.yandex.ru/cgi-bin/Reg.pl?from=mail&retpath=http://mail.yandex.ru/yamail\',
[ login => "user", passwd => "pass" ]
);
Если выводить на экран $response, то видно, что сервер присылает заголовки HTTP/1.0 302 (Found) Moved Temporarily, а ниже HTTP/1.1 302 Found, в обоих заголовках есть поле Location: <....>
Вопрос: как заставить скрипт автоматом перейти на страницу со значением поля Location, причём значение поля не статическое.
-
Считать Location и скормить скрипту. В чем проблема то?
-
КАК ЕГО СЧИТАТЬ ???
-
NeuroniX сними Caps Lock.
Во вторых $response у тебя содержит значение Location.
Ты не знаеш как заголовки вытащить?
Вот так:
print "HEADERS\\n";
print "$_ is $response->{_headers}{$_} \\n" for (keys %{$response->{_headers}});
Находиш нужное значение и далее $ua->request на это значение.
-
Спасибо, всё работает !