Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 LWP::UserAgent проблемы с redirect\'ом   Andrey Golubev   18 Oct 2000 00:23:19 
 Re: LWP::UserAgent проблемы с redirect\'ом   Paul Kulchenko   18 Oct 2000 19:27:52 
 Re: LWP::UserAgent проблемы с redirect\'ом   Artem Chuprina   18 Oct 2000 19:44:54 
 LWP::UserAgent проблемы с redirect\'ом   Andrey Golubev   19 Oct 2000 00:16:10 
 Re: LWP::UserAgent проблемы с redirect\'ом   Artem Chuprina   20 Oct 2000 18:36:41 
Архивное /ru.perl/1887039ecbafc.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional