Форум: "Начинающим";
Текущий архив: 2012.05.27;
Скачать: [xml.tar.bz2];
ВнизПроблема с TIdHttp Найти похожие ветки
← →
de_guta (2012-01-24 08:34) [0]
procedure TForm1.FormCreate(Sender: TObject);
begin
MyStream:=TMemoryStream.Create;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
buffer:="";
try
idhttp1.get("http://www.somesite.ru/1.txt",MyStream);
Mystream.Position:=0;
Mystream.ReadBuffer(buffer,sizeof(buffer));
except
end;
Drawit;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Mystream.Free;
close;
end;
Все работает, но если отключить инет и снова включить то после idhttp1 все равно обрабатывается блок except.
мож там какой кеш или буфер у компонента сбрасывать или очищать надо или как то обновлять соединение?
← →
Dimka Maslov © (2012-01-24 09:28) [1]У любого исключения есть класс и текстовое сообщение, указывающие на то, что происходит. Если просто давить исключения, то как можно понять, чем побороть ошибку?
← →
sniknik © (2012-01-24 09:30) [2]> except
> end;
ошибки нужно обрабатывать, а не игнорировать. тебе там как раз причину пишут.
> сбрасывать или очищать надо или как то обновлять соединение?
закрывать нужно, когда стал не нужным. не держать ресурсы, а освобождать.
← →
de_guta (2012-01-24 09:30) [3]Происходит то что метод get компонента idhttp считает что нет соединения
← →
Dimka Maslov © (2012-01-24 09:44) [4]В последнее время что-то очень много вопросов про глюки TIdHttp. Отсюда мораль: а может его вообще на надо использовать?
← →
sniknik © (2012-01-24 10:10) [5]> Отсюда мораль: а может его вообще на надо использовать?
глюки ламерские и у ламеров... может их отстреливать?
← →
de_guta (2012-01-24 10:44) [6]
> глюки ламерские и у ламеров... может их отстреливать?
уважаемый не ламер если не затруднит укажи на ошибку в выше представленном коде
← →
megavoid © (2012-01-24 11:17) [7]sniknik, конечно, телепат, но всё же лучше бы вы сами её указали ))
try
idhttp1.get("http://www.somesite.ru/1.txt",MyStream);
Mystream.Position:=0;
Mystream.ReadBuffer(buffer,sizeof(buffer));
except
on E : Exception do begin
ShowMessage("Exception class name = " + E.ClassName);
ShowMessage("Exception message = " + E.Message);
end;
end;
← →
sniknik © (2012-01-24 12:18) [8]> укажи на ошибку в выше представленном коде
>> except
>> end;
> ошибки нужно обрабатывать, а не игнорировать. тебе там как раз причину пишут.
>> сбрасывать или очищать надо или как то обновлять соединение?
> закрывать нужно, когда стал не нужным. не держать ресурсы, а освобождать.
так понятнее?
← →
Плохиш © (2012-01-24 12:24) [9]
> укажи на ошибку в выше представленном коде
В выше представленном коде синтаксических ошибок нет.
← →
de_guta (2012-01-24 12:43) [10]
> sniknik, конечно, телепат, но всё же лучше бы вы сами её
> указали ))try idhttp1.get("http://www.somesite.ru/1.txt",
> MyStream); Mystream.Position:=0; Mystream.ReadBuffer(buffer,
> sizeof(buffer));except on E : Exception do begin ShowMessage("Exception
> class name = " + E.ClassName); ShowMessage("Exception
> message = " + E.Message); end;end;
exception class eidsocketerror
exception message = socket error # 10054
connection reset by peer
Ситуация следущая:
1. Если инета нет изначально., запускаем прогу, обрабатывается блок except, все ok, врубаем инет, idhttp1.get отрабатывает без ошибки.
2. Если инет есть, запускаем прогу, все работает, отрубаем инет, блок except выполняется все okey, врубаем инет блок except продолжает выполняться в выше обозначеной ошибкой
← →
sniknik © (2012-01-24 12:55) [11]> connection reset by peer
говорил же, закрывать нужно...
← →
megavoid © (2012-01-24 12:57) [12]пересоздавать idhttp в рантайме
ms := tmemorystream.create;
idhttp1 := tidhttp.create;
try
idhttp1.get("http://www.somesite.ru/1.txt",MyStream);
Mystream.Position:=0;
Mystream.ReadBuffer(buffer,sizeof(buffer));
draw;
finally
freeandnil(idhttp1);
freeandnil(ms);
end;
← →
megavoid © (2012-01-24 12:59) [13]а и да, idhttp1.readtimeout, connecttimeout по-хорошему надо бы, чтобы были меньше, чем интервал таймера1, а то оно войдёт в процедуру повторно со всеми вытекающими возможными...
← →
de_guta (2012-01-24 13:20) [14]megavoid © спасибо , все заработало
← →
Anatoly Podgoretsky © (2012-01-24 15:15) [15]> de_guta (24.01.2012 09:30:03) [3]
Откуда узнал?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.05.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c