Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2009, 12:26   #11
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
в Indy в старших версиях в Idhttp есть метод checkforgrace<чего-то там>
который,собственно, и призван возвращать статус соединения
Т.е. перед тем как дисконнектиться перед GET'ом, я должен проверить CheckForGracefulDisconnect'ом не закрыто ли уже соединение?
Viteef вне форума Ответить с цитированием
Старый 10.02.2009, 12:28   #12
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

перед тем как вообще что- либо сделать с соединение лучше, теоретически, это проверять
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 18.02.2009, 13:48   #13
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Несколько дней проработало нормально, но потом опять...
Решил при возникновении исключения убивать IdHttp и создавать заново.
Viteef вне форума Ответить с цитированием
Старый 03.02.2010, 17:13   #14
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Сам вот наступил на эти грабли, при пересоздании компонента это лечиться. Но интересно разобраться с ситуацией. Вот у меня простой пример проверки прокси:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  s,ip,port: String;
  IdHTTP: TIdHTTP;
begin
  meResult.Lines.Clear;
  IdHTTP := TIdHTTP.Create;
  IdHTTP.ConnectTimeout := 2000;
  IdHTTP.ReadTimeout := 2000;
  IdHTTP.AllowCookies := True;
  IdHTTP.HandleRedirects := True;
  for i:=0 to meProxy.Lines.Count-1 do
  begin
    try
      ip := copy(meProxy.Lines.Strings[i], 1, pos(':',meProxy.Lines.Strings[i])-1);
      port := copy(meProxy.Lines.Strings[i], pos(':',meProxy.Lines.Strings[i])+1, length(meProxy.Lines.Strings[i]));
      IdHTTP.ProxyParams.ProxyServer := ip;
      IdHTTP.ProxyParams.ProxyPort := StrToInt(port);
      s := IdHTTP.Get('http://prostotaxi.pp.ua');
      if pos('<title>Index of /</title>', s) > 0 then
        meResult.Lines.Add(ip+':'+port);
    except
      on E: Exception do
      begin
        s := E.Message;
        meResult.Lines.Add(s);
      end;
    end;
    Button1.Caption := IntToStr(i+1)+'/'+IntToStr(meProxy.Lines.Count);
    Application.ProcessMessages;
  end;
  IdHTTP.Free;
end;
В процессе проверки проксей происходит сбой "Connection Closed Gracefully." и после этого все последующие прокси пролетают с этим же сообщением. Пробовал и Disconnect и CheckForGracefulDisconnect ничего не помогло. Может у кого есть какие идеи?

Последний раз редактировалось Usov; 03.02.2010 в 18:20.
Usov вне форума Ответить с цитированием
Старый 17.10.2011, 20:19   #15
Daneel
 
Регистрация: 17.10.2011
Сообщений: 5
По умолчанию

Я вот работою с инди, но возникает такая же ошибка. Трохи поизменяв код я пришел к выводу, что это возникает когда клиент не получил от сервера. У меня возникала на строке IdTCPClient1.ReadBuffer(str,sizeof( Double)* 8). Позже я нашел, что просто передавал данные не в то место(не клиенту).
Daneel вне форума Ответить с цитированием
Старый 06.05.2014, 14:31   #16
vershik
 
Регистрация: 07.05.2012
Сообщений: 6
По умолчанию Для IdHttp

idhttp1.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3';
vershik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49