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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Aleksey Barabanov                    2:5020/400     26 Jun 2000  22:49:12
 To : All
 Subject : Re: LWP again
 -------------------------------------------------------------------------------- 
 
 Serge Vylekzhanin wrote:
 
 > 
 
 [.......]
 
 > Если сувать методом GET, то все работает замечательно, редиректы
 > обрабатываются сами, как надо.  :)
 > Если сувать методом POST, то не обрабатывается редирект на нужный порт
 > (поле Location в заголовке, код возврата 302).
 > 
 > кусок данной программы:
 > 
 > ================================
 > if( $method eq 'GET' )
 > {
 >         $uagent   = new LWP::UserAgent;
 >         $request  = new HTTP::Request( $method, "${address}?${variables}" );
 >         $response = $uagent -> request( $request );
 > 
 >         if( $response -> is_success )
 >         {
 >                 print( "${address}: OK\n" );
 >         }
 >         else
 >         {
 >                 print( "${address}: ERROR\n" );
 >         }
 > }
 > elsif( $method eq 'POST' )
 > {
 >         $uagent   = new LWP::UserAgent;
 >         $header   = new HTTP::Headers( 'Content-length' =>
 >                                                     length( $variables ) );
 >         $request  = new HTTP::Request( $method, $address,
 >                                                     $header, $variables );
 >         $response = $uagent -> request( $request );
 
 -------------------^^^^^^^^^^^^^^^^^^^^^^
 Вот здесь проверьте редирект. И выполните его. Что-то вроде
 
 while( $response->is_redirect){...
 
 Для повторного запроса используйте значение Location из ответа сервера.
 
 > 
 >         if( $response -> is_success )
 >         {
 >                 print( "${address}: OK\n" );
 >         }
 >         else
 >         {
 >                 print( "${address}: ERROR\n" );
 >         }
 > }
 > ================================
 > 
 > Вопрос: Что я не дописал? (или LWP не дописали :-)
 > 
 > --
 >   Serge
 
 Сервер ( и LWP ) в этом случае предлагает вам выполнить редирект
 самостоятельно. Для того чтобы развеять мистику этого процесса
 рекомендую в начало вставить 
 
 use LWP::Debug;
 LWP::Debug::level('+');
 
 И после этого вся отвратительная переадресующая деятельность русского
 апача вам предстанет в STDERR ;)
 А если вы почитаете исходники LWP то вообще все вопросы снимуться ;)
 -- 
 Aleksey Barabanov <alekseybb@mtu-net.ru>
 --- ifmail v.2.15dev5
  * Origin: Small Office (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: LWP again   Aleksey Barabanov   26 Jun 2000 22:49:12 
Архивное /ru.perl/44135a36142a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional