在Delphi XE2中,使用TIdHTTP.Get
时,如何设置连接超时? (例如,计算机未物理连接到Internet时超时)。我尝试使用ConnectTimeout
和ReadTimeout
TIdHTTP属性设置连接超时,但它不起作用:
procedure TForm1.btnGetClick(Sender: TObject);
var
S: string;
begin
IdHTTP1.ConnectTimeout := 3000;
IdHTTP1.ReadTimeout := 3000;
S := IdHTTP1.Get('http://www.mywebsite.com/program_version.txt');
lbl1.Caption := S;
end;
使用此代码,始终在完全 21秒(!)后,将显示消息对话框“连接超时”(当计算机未物理连接到Internet时)。
那么,如何设置IdHTTP连接超时?此外,NO DIALOG应该在超时时显示,但是应该触发一个事件,所以我可以自己处理超时事件。
更一般地说,如何检测是否没有物理互联网连接?在这种情况下,我根本不需要连接并节省超时时间(例如,在程序启动时在线检查最新的程序版本)。
Indy版本:10.5.8.0