Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LWP ограничение по размеру загрузки 
V
    Опции темы
AterCattus
  Дата 21.8.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 12.8.2009
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Доброго времени суток!

Возникла необходимость в ограничении размера получаемых через LWP::UserAgent файлов. И не могу найти как это применить. Интересует не пост-проверка уже после закачки, а проверка во время получения. По заголовкам (Content-Length) или по объему реально полученных на данный момент данных. Дело не в таймауте, данные получаются. Сайты различные, не у всех Content-Length задан.

Заранее спасибо за помощь.
PM MAIL WWW   Вверх
ginnie
Дата 21.8.2009, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



AterCattus, надо хэндлер прописать для фазы response_data, в котором считать полученный объем данных.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
AterCattus
Дата 21.8.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 12.8.2009
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Спасибо за нужное направление.

Добавил:
Код

    my $bytes_received = 0;
    $browser->add_handler( 'response_data' => sub{
                                                $bytes_received += length( $_[3] );
                                                return 1;
                                                }
                        );


Работает, считает. Вот только как прервать загрузку из этого обработчика? Метода я что-то не нашел, а
Код
This handlers is called for each chunk of data received for the response. The handler might croak to abort the request.

ничего полезного не сообщает.

При прерывании мне даже не нужны полученные данные - просто игнорирую что качал.
PM MAIL WWW   Вверх
ginnie
Дата 21.8.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



AterCattus, а попробовать вызвать Carp::croak()?

Это сообщение отредактировал(а) ginnie - 21.8.2009, 15:21


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
AterCattus
Дата 21.8.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 12.8.2009
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Спасибо, действительно помогло. Не знал об этом ранее.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.