<div dir="ltr"><div>Ну с application/x-www-form-urlencoded тут с клиентом нужно что-то предпринимать, так как справедливо заметил Denis Ibaev <<a href="mailto:dionys@gmail.com" target="_blank">dionys@gmail.com</a>> в самом коде есть такой кусок:<br>
<span style="font-family:courier new,monospace">sub handle_request {<br>
    my ($self, $method, $uri, $hdr, $cont) = @_;<br>
<br>
    $self->{keep_alive} = ($hdr->{connection} =~ /keep-alive/io);<br>
<br>
    my ($ctype, $bound) = _content_type_boundary ($hdr->{'content-type'});<br>
<br>
    if ($ctype eq 'multipart/form-data') {<br>
    $cont = $self->decode_multipart ($cont, $bound);<br>
<br>
    } elsif ($ctype =~ /x-www-form-urlencoded/o) {<br>
        $cont = parse_urlencoded ($cont);<br>    }<br>
<br>
    $self->event (request => $method, $uri, $hdr, $cont);<br>}<br></span></div>То есть если в заголовке есть <span style="font-family:courier new,monospace">x-www-form-urlencoded</span> значит фрейморк пытаеся отпарсить все это, причем если не распарсил - случилась беда, оригинала не остается, как я понял из кода (нужно проверить т.к. смотрел по-диагонали)<br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-17 13:50 GMT+04:00 Ruslan Kuksa <span dir="ltr"><<a href="mailto:perl-list@spb.csat.ru" target="_blank">perl-list@spb.csat.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Спасибо за ответы.<br>
<br>
Это оно самое. При отправке через curl --data-binary, данные печатаются<br>
<br>
   print $req->content();<br>
<br>
А как быть с application/x-www-form-<u></u>urlencoded?<br>
Что надо предпринимать?<br>
<br>
17.06.2014 13:03, Andrey Chernomyrdin пишет:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
Просто content лучше использовать когда передается что-то типа XML/JSON,например если сделать запрос таким образом:<br>
curl -s \<br>
-H 'Content-Type: text/xml' \<br>
-H 'SOAPAction: ""' \<br>
--data-binary '<soapenv:Envelope xmlns:soapenv="<a href="http://schemas.xmlsoap.org/soap/envelope/" target="_blank">http://schemas.<u></u>xmlsoap.org/soap/envelope/</a>" xmlns:api="<a href="http://localhost/api" target="_blank">http://localhost/<u></u>api</a>"> <soapenv:Header/><soapenv:<u></u>Body><api:<u></u>getOrganizationsRequest/></<u></u>soapenv:Body></soapenv:<u></u>Envelope>' \<br>

<a href="http://localhost:9090/to-post" target="_blank">http://localhost:9090/to-post</a><br>
<br>
То в $req->content получишь то, что указанно в --data-binary<br>
<br>
<br></div>
2014-06-17 12:51 GMT+04:00 Denis Ibaev <<a href="mailto:dionys@gmail.com" target="_blank">dionys@gmail.com</a> <mailto:<a href="mailto:dionys@gmail.com" target="_blank">dionys@gmail.com</a>>>:<div class=""><br>

<br>
    В документации же сказано:<br>
<br>
    content - Returns the request content or undef if only parameters for<br>
    a form were transmitted.<br>
<br>
    А при Content-Type: application/x-www-form-<u></u>urlencoded он думает, что<br>
    есть параметры. Это видно в<br>
    <a href="https://metacpan.org/source/ELMEX/AnyEvent-HTTPD-0.93/lib/AnyEvent/HTTPD/HTTPConnection.pm#L302" target="_blank">https://metacpan.org/source/<u></u>ELMEX/AnyEvent-HTTPD-0.93/lib/<u></u>AnyEvent/HTTPD/HTTPConnection.<u></u>pm#L302</a><br>

<br>
    sub handle_request {<br>
    my ($self, $method, $uri, $hdr, $cont) = @_;<br>
<br>
    $self->{keep_alive} = ($hdr->{connection} =~ /keep-alive/io);<br>
<br>
    my ($ctype, $bound) = _content_type_boundary ($hdr->{'content-type'});<br>
<br>
    if ($ctype eq 'multipart/form-data') {<br>
    $cont = $self->decode_multipart ($cont, $bound);<br>
<br>
    } elsif ($ctype =~ /x-www-form-urlencoded/o) {<br>
    $cont = parse_urlencoded ($cont);<br>
    }<br>
<br>
    $self->event (request => $method, $uri, $hdr, $cont);<br>
    }<br>
<br>
<br>
    17 июня 2014 г., 12:00 пользователь Ruslan Kuksa<br></div>
    <<a href="mailto:perl-list@spb.csat.ru" target="_blank">perl-list@spb.csat.ru</a> <mailto:<a href="mailto:perl-list@spb.csat.ru" target="_blank">perl-list@spb.csat.ru</a>><u></u>> написал:<div class=""><br>

    > задел меня доклад по AnyEvent, решил переписать одну фигню.<br>
    > Клиент отправляет данные на сервер методом POST:<br>
    ><br>
    > POST / HTTP/1.1<br>
    > Host: localhost:8080<br>
    > Accept: */*<br>
    > Content-Length: 1797<br>
    > Content-Type: application/x-www-form-<u></u>urlencoded<br>
    > Expect: 100-continue<br>
    ><br>
    > Как вытащить те самые 1797 байтов данных?<br>
    > Чтение документации очень помогло, я узнал что это возможно, но не узнал<br>
    > как. (:<br>
<br>
    --<br>
    Денис Ибаев<br>
    ______________________________<u></u>_________________<br>
    Spb-pm mailing list<br></div>
    <a href="mailto:Spb-pm@pm.org" target="_blank">Spb-pm@pm.org</a> <mailto:<a href="mailto:Spb-pm@pm.org" target="_blank">Spb-pm@pm.org</a>><div class=""><br>
    <a href="http://mail.pm.org/mailman/listinfo/spb-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/spb-pm</a><br>
<br>
<br>
<br>
<br>
-- <br>
With best, Andrey Chernomyrdin<br>
<br>
<br>
______________________________<u></u>_________________<br>
Spb-pm mailing list<br>
<a href="mailto:Spb-pm@pm.org" target="_blank">Spb-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/spb-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/spb-pm</a><br>
</div></blockquote><div class="HOEnZb"><div class="h5">
<br>
______________________________<u></u>_________________<br>
Spb-pm mailing list<br>
<a href="mailto:Spb-pm@pm.org" target="_blank">Spb-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/spb-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/spb-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>With best, Andrey Chernomyrdin
</div>