Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> idHttp и таймаут, искал, но не нашел 
:(
    Опции темы
MacTep
Дата 14.3.2007, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Загружаю информацию с какого-либо сайта, используя прокси. То есть:
Код

      frmMain.http.ProxyParams.ProxyPort:=port;
      frmMain.http.ProxyParams.ProxyServer:='192.168.2.1';

Как отследить, например, что кончился таймаут??? Например на коннект отводится 5 секунд. Не получилось - сказать, истекло время подключения. smile Думал, через try...except, что-то не догнал. Искал здесь на форуме, ничего конкретного так и не нашел. Везде темы без окончательного ответа.

Очень надо. Спасибо заранее...

P.S. Вообще не важно, через прокси, не через прокси. Важно то, что если сервак не отвечает - все, значит нужно блочить это дело и выводить сообщение, мол, сервер недоступен. Не понимаю пока, как этого добиться.

Это сообщение отредактировал(а) MacTep - 14.3.2007, 01:28


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Matematik
Дата 14.3.2007, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

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



В 9 есть параметры:
  IdHTTP1.ReadTimeout;
  IdHTTP1.ConnectTimeout.
В 10 они тоже есть, но в другом месте.

Добавлено @ 09:18 
(по памяти пишу)
  IdHTTP1.IOHandle.ReadTimeout;
  IdHTTP1.IOHandle.ConnectTimeout.

PM MAIL WWW ICQ   Вверх
Yanis
Дата 14.3.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Разве в коннекте не указывается таймаут?
Код
TIdHTTP.Connect



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Yanis
Дата 14.3.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код
var
  s:string;
begin
  http.ReadTimeout := 1;
  Screen.Cursor:=crHourGlass;
  Memo1.Clear;
  try
    Memo1.Lines.Text := http.Get('http://ya.ru');
  except
    on EIdReadTimeout do ShowMessage('Время вышло!');
  end;
  Screen.Cursor:=crDefault;
end;



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
MacTep
Дата 14.3.2007, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Я сделал так, а то предыдущий код не дал результатов:
Код

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
  http.ProxyParams.ProxyPort:=4662;
  http.ProxyParams.ProxyServer:='192.168.2.1';
  http.ReadTimeout:=3000;
  try
    Screen.Cursor:=crHourGlass;
    s:=http.Get('http://ya.ru');
    Memo1.Clear;
    Memo1.Lines.Text:=s;
  except
    on EIdReadTimeout do
      ShowMessage('Время вышло');
    on EIdConnectTimeout do
      ShowMessage('Время вышло');
  end;
    Screen.Cursor:=crDefault;
end;
Правильное решение?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Yanis
Дата 14.3.2007, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(MacTep @  14.3.2007,  12:27 Найти цитируемый пост)
Я сделал так

Просто у меня при истечении таймаута чтения возникал именно EIdReadTimeout. Причём здесь EIdConnectTimeout я не понимаю. Но если всё работает, то smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
MacTep
Дата 14.3.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Цитата(Yanis @  14.3.2007,  11:57 Найти цитируемый пост)
Причём здесь EIdConnectTimeout я не понимаю.
Да я и сам не понимаю, но с эти исключением все работает нормально, а без него не работает вообще. smile



--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
creas0ft
Дата 14.3.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Работает в 10ке
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
begin
  http.ConnectTimeout := 1000;
  http.ReadTimeout := 10;
  Screen.Cursor:=crHourGlass;
  Memo1.Clear;
  try
    Memo1.Lines.Text := http.Get('http://ya.ru');
  except
    on EIdConnectTimeout do ShowMessage('НЕ успели подключиться');
    on EIdReadTimeout do ShowMessage('Не успели скачать');
  end;
  Screen.Cursor:=crDefault;
end;


Это сообщение отредактировал(а) creas0ft - 14.3.2007, 18:25
--------------------
Форум программистов уклонистов в сторону сео-шмео
PM MAIL WWW ICQ   Вверх
MacTep
Дата 14.3.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Цитата(creas0ft @  14.3.2007,  18:24 Найти цитируемый пост)
Работает в 10ке

У меня стандартная версия Инди, которая идет вместе с 7 Дельфёй. smile Так что вот. ;)


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
MacTep
Дата 20.3.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Вот такой код:
Код

      sl:=TStringList.Create;

      pathto:='http://www.'+cbAddres.Text+'/index.php?com=import&pwimport='+edPassword.Text;

      sl.Add('text='+Memo4.Text);
      Screen.Cursor:=crHourGlass;

      try
        http.ReadTimeout:=timeout;
        s:=http.post(pathto,sl);
      except
        on EIdReadTimeout do
          begin
            MessageBox(frmMain.Handle,
                       PCHar('Error'),
                       PChar('Error'),
                       MB_IconError);
          end;
        on EIdConnectTimeout do
          begin
            MessageBox(frmMain.Handle,
                       PCHar('Error'),
                       PChar('Error'),
                       MB_IconError);
          end;
      end;

Работает так странно. Данные получает. Но при этом выдает сообщение об ошибке по исключению???? Как это так??? И как можно избежать этого?

Это сообщение отредактировал(а) MacTep - 20.3.2007, 12:39


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
MetalFan
Дата 20.3.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



Цитата(MacTep @  14.3.2007,  23:23 Найти цитируемый пост)
У меня стандартная версия Инди, которая идет вместе с 7 Дельфёй. smile Так что вот. ;) 

какой ужас! обнови до 9.0.18! в предыдущих версиях много косяков и подводных камней!

Цитата(MacTep @  20.3.2007,  12:36 Найти цитируемый пост)
Работает так странно. Данные получает. Но при этом выдает сообщение об ошибке по исключению???? Как это так??? И как можно избежать этого?

какое исключение? ConnectionClosedGracefully? )

Это сообщение отредактировал(а) MetalFan - 20.3.2007, 12:48


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
MacTep
Дата 20.3.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Вот это! smile
EIdReadTimeout


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
MacTep
Дата 20.3.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Обновил инди. Все равно такая странная ошибка... Сервер работает. А данные на него не выгружаются.... Блин. :( И почему- не понятно... :(


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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