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
