|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1373739642ce3.html, оценка из 5, голосов 10
|