2015-12-11 16:51 GMT+03:00 Oleg Alistratov <[email protected]>:

>
> 11.12.2015, 15:36, "Павел Купцов" <[email protected]>:
>
> >>«Бесконечно» — это как именно бесконечно? В заголовках ответа есть
> Content-Length? >Есть, но не соответствует правде? Или нет? Или нет, но
> внезапно есть Upgrade: >WebSocket? ;)
> >>Если там нормальный документ, просто слишком большой, чтобы его
> принимать, >достаточно повесить обработчик на on_header и возвращать из
> него 0, если что-то не >устраивает:
> > На заголовки Content-Length рассчитывать не приходится: зачастую
> неправильные они или вообще их нет.
> > В данном конкретно случае content-lenght нет
> > Вот этот случай:
> > http://avtorradio.ru/
> > :))
>
> Мда, плёхо.
>
> Ну, поскольку AnyEvent::HTTP сам создает себе AnyEvent::Handle и назначает
> ему колбеки, то придется его патчить.
> Передать собственный on_read в AnyEvent::Handle там, afaik, не получится.
>
>
my $body = '';
my $length = 0;
http_get(
    '...',
    on_body => sub { $body .= $_[0];  return length($body) > 1024*1024? 0 :
1;  }
);

как-то так

В основном колбеке используем замыкание на внешнее $body. Ничего не
меняется. В статусе 598 если обрубился запрос по размеру.


>
> --
> Oleg Alistratov
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
Best regards, Ruslan.
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить