|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Golubev 2:5030/542.122 18 Oct 2000 00:23:19 To : All Subject : LWP::UserAgent проблемы с redirect'ом --------------------------------------------------------------------------------
Помогите, плс разобраться в следующей проблеме...
Мой скрипт сабмитит форму и записывает то что выдает сервер в ответ в файл...
но проблема в том, что некоторые сервера выдают в ответ только 2 байта, потому
как они просто редиректят меня и в моем скрипте этот ответ не записывается...
а записываются только 2 байта... а надо бы чтобы записывалось, то что в ответ на
сабмит дает сервер...
Тогда я попробовал использовать метод redirect_ok, но что-то ничего не
работает...
Вот кусок моего скрипта:
sub POSTsubmit
{
($spreferer, $spurl, $spformdata, $sptgpname)=@_;
$h = new HTTP::Headers;
$h->referer("$spreferer");
# Create a user agent object
$ua = new LWP::UserAgent;
> $ua->redirect_ok;
$ua->timeout(20);
$ua->agent('Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)');
# Create a request
my $req = new HTTP::Request(POST, "$spurl", $h);
$req->content_type('application/x-www-form-urlencoded');
$req->content("$spformdata");
# Pass request to the user agent and get a response back
my $res = $ua->request($req);
# Check the outcome of the response
if($res->is_success) { # нашли
$tmp="$sptgpname".".html";
open(htmlka, ">logs/$catalog/$tmp");
print htmlka "$spurl\n";
print htmlka "$spformdata\n";
print htmlka $res->content;
close(htmlka);
# единичка после текста значит, что нам надо будет вывести ссылку на файл...
# подробности смотреть в print2.pl
print2("Submiting to $sptgpname ($spurl)... Sucefully",1);
}
else { # что-то не так
print2("Submiting to $sptgpname ($spurl)... Couldn't fetch");
}
return (1);
}
Когда я ставлю в скрипт выделенную строчку, а именно
$ua->redirect_ok;
то выдается следующая ошибка...
Can't call method "method" on an undefined value at
C:/Proglang/Perl/site/lib/LWP/UserAgent.pm line 367, <tgp> chunk 1264.
Я смотрю в perldoc LWP::UserAgent и вот что там читаю:
$ua->redirect_ok
This method is called by request() before it tries to do any
redirects. It should return a true value if a redirect is
allowed to be performed. Subclasses might want to override
this.
The default implementation will return FALSE for POST
request and TRUE for all others.
Я так понимаю, что здесь написано, что этот метод вызывается функцией request до
того как она пытается делать редиректы...
Hу я и ставлю просто строчку
$ua->redirect_ok
(так как там никаких параметров не предусмотрено (в perldoc'e не написано), то
просто без параметров и ставлю) до того как вызывается какой-либо реквест...
Я наверное либо плохо понимаю по-английски или вообще, поэтому плс, помогите
разобраться, а то чтобы вас не тревожить почем зря я и пробовал по-всякому и
perldoc читал и книги по Perl'у смотрел, но так и не разобрался...
Так что вся надежда на вас !
Заранее огромное спасибо !
WBR, Andrey Golubev
---
* Origin: Вот ! (2:5030/542.122)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1887039ecbafc.html, оценка из 5, голосов 10
|