[Moscow.pm] подскажите по WWW::Curl::Easy

Nickolay Platonov nickolay8 на gmail.com
Вт Апр 28 08:40:45 PDT 2009


еще вариант

$request->headers->as_string

2009/4/28 Alex Shatlovsky <shatlovsky на gmail.com>

> Привет,
>
> 2009/4/28 Анатолий Шарифулин <sharifulin на gmail.com>:
> > Так вы длину не пишите.
> > Используйте 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 <kaa на zvuki.ru>
> >>
> >> Доброе утро, всезнающий 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 <kaa на zvuki.ru>
> >>
> >> --
> >> Moscow.pm mailing list
> >> moscow-pm на pm.org | http://moscow.pm.org
> >
> >
> >
> > --
> > С уважением,
> > Анатолий Шарифулин.
> >
> > --
> > Moscow.pm mailing list
> > moscow-pm на pm.org | http://moscow.pm.org
> >
> >
>
>
>
> --
> С уважением,
> А.Н.Шатловский
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20090428/eff0bc12/attachment.html>


Подробная информация о списке рассылки Moscow-pm