еще вариант $request->headers->as_string
2009/4/28 Alex Shatlovsky <[email protected]> > Привет, > > 2009/4/28 Анатолий Шарифулин <[email protected]>: > > Так вы длину не пишите. > > Используйте HTTP::Request::Common, он за вас длину посчитает и тип > пропишет > > верный и правильный запрос построит. Перед отправкой as_string покажет > весь > > запрос. > > Заголовки все равно не все возвращаются: > > $ ./ua.t > # Will access HTTP server at http://srv:55605/ > # URL constructed: http://srv:55605/obj > From requestor's view: > POST http://srv:55605/obj > Content-Length <http://srv:55605/obj%0AContent-Length>: 10 > Content-Type: application/x-www-form-urlencoded > > domain=qqq > ==================== > From respondent's view > > POST /obj HTTP/1.1 > Connection: TE, close > Host: srv:55605 > TE: deflate,gzip;q=0.3 > User-Agent: libwww-perl/5.805 > Content-Length: 10 > Content-Type: application/x-www-form-urlencoded > > domain=qqq > ==================== > # URL constructed: http://srv:55605/quit > Terminate HTTP server > > > -- > > > > > > 2009/4/28 Andrew Kopeyko <[email protected]> > >> > >> Доброе утро, всезнающий all! > >> > >> Есть задача - нужно видеть (логировать) все заголовки отправляемого мною > >> POST-запроса. > >> > >> Запрос формируется перлом, соответственно начал (по привычке) на LWP, но > >> довольно быстро обломался - до всех заголовков реального запроса не > >> дотягивается даже $request->as_string; > >> > >> Вот кусочек кода: > >> --->8--- > >> use LWP; > >> use HTTP::Request; > >> my $ua = new LWP::UserAgent; > >> my $request = HTTP::Request->new(POST => $URL); > >> $request->content_type('application/x-www-form-urlencoded'); > >> my $content = "domain=qqq"; > >> $request->content($content); > >> $Cookies->add_cookie_header( $request ); > >> $ua->prepare_request( $request ); > >> &debug("POSTing $URL ..."); > >> &debug("request_headers:"); > >> foreach my $hdr ($ua->default_headers->header_field_names) { > >> print " ".$hdr.": ".$ua->default_headers->header($hdr)."\n"; > >> } > >> print $request->as_string(); > >> --->8--- > >> > >> А вот его output: > >> --->8--- > >> DEBUG: POSTing https://www.nic.ru/cgi/na.cgi ... > >> DEBUG: request_headers: > >> Accept: text/html, text/plain > >> Accept-Charset: koi8-r > >> Accept-Language: ru,en > >> Referer: http://www.nic.ru/ > >> User-Agent: Mozilla/4.72 [en] (X11; U; FreeBSD 4.2-BETA i386) > >> > >> POST https://www.nic.ru/cgi/na.cgi > >> Accept: text/html, text/plain > >> Accept-Charset: koi8-r > >> Accept-Language: ru,en > >> Referer: http://www.nic.ru/ > >> User-Agent: libwww-perl/5.805 > >> > >> domain=qqq > >> > >> --->8--- > >> > >> Видно, что в выводе отсутствуют > >> - установленный Content-Type > >> - вычисленный Content-Length > >> > >> > >> Дело осложняется тем, что запрос идёт на https:// - т.е. on-wire > >> (tcpdump\ethereal) не подсмотреть... > >> > >> Каждый раз пробовать на отдельном специальном http-сервере - не дело: > мне > >> нужно будет логировать заголовки "боевого" POST-запроса. > >> > >> > >> Сейчас смотрю в сторону WWW::Curl::Easy. Судя по документации, есть > >> возможность посмотреть заголовки запроса - через установку опции > >> CURLOPT_DEBUGFUNCTION с типом CURLINFO_HEADER_OUT > >> > http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTDEBUGFUNCTION > >> > >> Но вот как именно это делается - пока непонятно. Ибо перлового примера - > >> не нагуглилось... > >> > >> Нашёл только Cи-шный пример: > >> http://curl.haxx.se/lxr/source/docs/examples/debug.c > >> но моих знаний C и Perl - недостаточно чтобы построить перловый аналог > >> функции my_trace. Увы... > >> > >> > >> Вот и прошу "помощи зала" - может, кто из вас хорошо знаком с cURL ? > >> > >> Пожалуйста, подскажите > >> - как работать с CURLOPT_DEBUGFUNCTION ? > >> - как логировать заголовки отправляемого POST-запроса ? > >> > >> > >> > >> -- > >> Best regards, > >> Andrew Kopeyko <[email protected]> > >> > >> -- > >> Moscow.pm mailing list > >> [email protected] | http://moscow.pm.org > > > > > > > > -- > > С уважением, > > Анатолий Шарифулин. > > > > -- > > Moscow.pm mailing list > > [email protected] | http://moscow.pm.org > > > > > > > > -- > С уважением, > А.Н.Шатловский > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
