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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Serge Vylekzhanin                    2:5052/4       26 Jun 2000  19:19:13
 To : Artiom Morozov
 Subject : LWP again
 -------------------------------------------------------------------------------- 
 
 .RFC-X-Complaints-To: news@info.martelcom.ru
 .RFC-NNTP-Posting-Date: 26 Jun 2000 15:19:13 GMT
 From: Serge Vylekzhanin <Serge.Vylekzhanin@f4.n5052.z2.fidonet.org>
 
 Artiom Morozov <apm@csp.org.by> wrote:
 
 > use LWP::UserAgent;
 > $data = '<post data>';
 > $ua = new LWP::UserAgent();
 > $header = new HTTP::Headers('Accept' => '*/*',
 >     'MIME-Version' => '1.0',
 >     'Content-type' => 'application/x-www-form-urlencoded',
 >     'Content-Length' => length($data));
 > $req = new HTTP::Request('POST' => 'http://www.foo.com/bar.cgi',
 > $header, $data)
 > $res = $ua->request($req);
 > die unless $res->is_success();
 > 
 
 У меня похожая проблема созрела:
 
 Есть некоторый тестовый скрипт ( с use CGI; ), который изображает
 из себя гостевую книжку. Все это работает на Apache с редиректом
 на нужный порт при определении кодировки клиента
 (koi8-r => 8100, win => 8101, etc).
 
 Есть другой скрипт ( с use LWP::UserAgent; ), который прицепляется к
 этой гостевой книжке и сует туда свою информацию.
 
 Если сувать методом 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 );
 
   if( $response -> is_success )
   {
    print( "${address}: OK\n" );
   }
   else
   {
    print( "${address}: ERROR\n" );
    }
 }
 ================================
 
 Вопрос: Что я не дописал? (или LWP не дописали :-)
 
 -- 
   Serge
 --- ifmail v.2.14.os7-aks5
  * Origin: Open Joint Stock Company Martelcom (2:5052/4@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 LWP again   Serge Vylekzhanin   26 Jun 2000 19:19:13 
 Re: LWP again   Artem Chuprina   28 Jun 2000 11:09:21 
Архивное /ru.perl/1373739642ce3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional