Так вы длину не пишите.<br>Используйте HTTP::Request::Common, он за вас длину посчитает и тип пропишет верный и правильный запрос построит. Перед отправкой as_string  покажет весь запрос.<br><br><div class="gmail_quote">2009/4/28 Andrew Kopeyko <span dir="ltr">&lt;<a href="mailto:kaa@zvuki.ru">kaa@zvuki.ru</a>&gt;</span><br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Доброе утро, всезнающий all!<br>
<br>
Есть задача - нужно видеть (логировать) все заголовки отправляемого мною POST-запроса.<br>
<br>
Запрос формируется перлом, соответственно начал (по привычке) на LWP, но довольно быстро обломался - до всех заголовков реального запроса не дотягивается даже $request-&gt;as_string;<br>
<br>
Вот кусочек кода:<br>
---&gt;8---<br>
use LWP;<br>
use HTTP::Request;<br>
my $ua = new LWP::UserAgent;<br>
my $request = HTTP::Request-&gt;new(POST =&gt; $URL);<br>
$request-&gt;content_type(&#39;application/x-www-form-urlencoded&#39;);<br>
my $content = &quot;domain=qqq&quot;;<br>
$request-&gt;content($content);<br>
$Cookies-&gt;add_cookie_header( $request );<br>
$ua-&gt;prepare_request( $request );<br>
&amp;debug(&quot;POSTing $URL ...&quot;);<br>
&amp;debug(&quot;request_headers:&quot;);<br>
foreach my $hdr ($ua-&gt;default_headers-&gt;header_field_names) {<br>
    print &quot;  &quot;.$hdr.&quot;: &quot;.$ua-&gt;default_headers-&gt;header($hdr).&quot;\n&quot;;<br>
}<br>
print $request-&gt;as_string();<br>
---&gt;8---<br>
<br>
А вот его output:<br>
---&gt;8---<br>
DEBUG: POSTing <a href="https://www.nic.ru/cgi/na.cgi" target="_blank">https://www.nic.ru/cgi/na.cgi</a> ...<br>
DEBUG: request_headers:<br>
  Accept: text/html, text/plain<br>
  Accept-Charset: koi8-r<br>
  Accept-Language: ru,en<br>
  Referer: <a href="http://www.nic.ru/" target="_blank">http://www.nic.ru/</a><br>
  User-Agent: Mozilla/4.72 [en] (X11; U; FreeBSD 4.2-BETA i386)<br>
<br>
POST <a href="https://www.nic.ru/cgi/na.cgi" target="_blank">https://www.nic.ru/cgi/na.cgi</a><br>
Accept: text/html, text/plain<br>
Accept-Charset: koi8-r<br>
Accept-Language: ru,en<br>
Referer: <a href="http://www.nic.ru/" target="_blank">http://www.nic.ru/</a><br>
User-Agent: libwww-perl/5.805<br>
<br>
domain=qqq<br>
<br>
---&gt;8---<br>
<br>
Видно, что в выводе отсутствуют<br>
- установленный Content-Type<br>
- вычисленный Content-Length<br>
<br>
<br>
Дело осложняется тем, что запрос идёт на https:// - т.е. on-wire (tcpdump\ethereal) не подсмотреть...<br>
<br>
Каждый раз пробовать на отдельном специальном http-сервере - не дело: мне нужно будет логировать заголовки &quot;боевого&quot; POST-запроса.<br>
<br>
<br>
Сейчас смотрю в сторону WWW::Curl::Easy. Судя по документации, есть возможность посмотреть заголовки запроса - через установку опции CURLOPT_DEBUGFUNCTION с типом CURLINFO_HEADER_OUT<br>
<a href="http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTDEBUGFUNCTION" target="_blank">http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTDEBUGFUNCTION</a><br>
<br>
Но вот как именно это делается - пока непонятно. Ибо перлового примера - не нагуглилось...<br>
<br>
Нашёл только Cи-шный пример:<br>
  <a href="http://curl.haxx.se/lxr/source/docs/examples/debug.c" target="_blank">http://curl.haxx.se/lxr/source/docs/examples/debug.c</a><br>
но моих знаний C и Perl - недостаточно чтобы построить перловый аналог функции my_trace. Увы...<br>
<br>
<br>
Вот и прошу &quot;помощи зала&quot; - может, кто из вас хорошо знаком с cURL ?<br>
<br>
Пожалуйста, подскажите<br>
- как работать с CURLOPT_DEBUGFUNCTION ?<br>
- как логировать заголовки отправляемого POST-запроса ?<br>
<br>
<br>
<br>
-- <br>
Best regards,<br>
Andrew Kopeyko &lt;<a href="mailto:kaa@zvuki.ru" target="_blank">kaa@zvuki.ru</a>&gt;<br><font color="#888888">
<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>С уважением,<br> Анатолий Шарифулин.<br>