Форум программистов, компьютерный форум, киберфорум
Perl
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 0
Регистрация: 30.08.2012
Сообщений: 151
1

Таймаут lwp

05.11.2013, 02:23. Показов 1467. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я получаю страницу через LWP, как сделать что бы если получение страницы длится больше 10 секунд - соединение прекращалось (но не die, нужно далее следующее соединение)
timeout - он вроде срабатывает если соединения вообще Нету..ждет указаное число секунд и оффает..т.е не подходит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2013, 02:23
Ответы с готовыми решениями:

LWP + https + authorization_basic
Коллеги, целый день парюсь, не могу понять где ошибка. Задача: На закрытом "логином-паролём"...

LWP::UserAgent недокачивает до конца
Отправляю через LWP::UserAgent запрос на скачивание странички, но decoded_content возвращает лишь...

Timeout при использовании LWP
Здравствуйте! Прошу помощи, пишу скрипт интеграции с ip телефонией, встал небольшой вопрос. При...

HTTP::CookieJar::LWP непонятная ошибка
Такой простой код. Из разных мест perldoc #!perl use strict; use warnings; use feature ':5.10';...

1
352 / 222 / 25
Регистрация: 30.09.2012
Сообщений: 548
05.11.2013, 18:35 2
Попробуйте так
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!perl
 
use strict;
use warnings;
use LWP::UserAgent;
 
# что будем качать
my $url = 'https://www.cyberforum.ru/';
# задаём таймаут 10 секунд
my $timeout = 10; 
my $ua = LWP::UserAgent->new();
$ua->agent('Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0');
 
# Всё, что внутри eval не приводит к прерыванию программы
my $txt = eval {
    # Связываем сигнал ALRM с подпрограммой, генерирующую ошибку
    local $SIG{ALRM} = sub { die("Error of timeout www.cyberforum.ru\n"); };
    # запускаем таймер на $timeout секунд
    alarm($timeout);
    # запускаем код, который хотим ограничить по времени
    # это добавлено специально, чтобы был таймаут. в рабочем коде sleep убрать
    sleep(15);
    my $txt = $ua->get($url)->as_string();
    # выключаем таймер
    alarm(0);
    # возвращаем как результат последнее значение
    $txt;
};
 
# Если прошла какая нибудь ошибка
if($@) { 
    # Если не таймаут показываем ошибку
    if ($@ ne "Error of timeout www.cyberforum.ru\n") {
        print "Error $@\n";
    } else {
        # Если таймаут
        print "Timeout www.cyberforum.ru\n";
    }
} else {
    # Если ошибки не было
    print "$txt\nOk!\n";
}
Про alarm можно прочитать здесь
0
05.11.2013, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2013, 18:35
Помогаю со студенческими работами здесь

Не получается получить HTML код LWP::useragentом
Здравствуйте,пытаюсь разобраться с LWP::UserAgent но не могу даже элементрано вывести HTML-код в...

ajax в json не работает, если срабатывает LWP::UserAgent
есть код: ...

Как работает LWP? Он Всё время выдаёт ошибку.
Я использую LWP::UserAgent для скачивания страниц с HTTP. Но что-то не ладится. Переменная $!...

LWP proxy ошибка Error: 407 Proxy authentication required
Есть скрипт: #!/usr/bin/perl use LWP::UserAgent; $ua = LWP::UserAgent->new;...

Как заставить скрипт работать долго? (Обойти таймаут)
На каждом хостинге есть таймаут. И не зависимо от того успел скрипт выполница или нет он убивается....

Утилита, подобная lwp-download для win32?
Прошу прощения за оффтопик, но может быть здесь кто-то знает утилиту, подобную lwp-download для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru