idhttp。get 卡死。解决办法
idhttp。get 卡死。。。
关于在目的URL繁忙或者网络异常的情况下,,TIdHTTP.Get(URL)没有任何信息反馈,一直阻塞在这里,try...except也无法捕获异常,网络搜索这方的解决办法,但是一直找不到,ConnectTimeout或者ReadTimeout根本不起作用,哪位大侠有这方面的解决办法的??? 有时候正常的,但是到网络不好的时候就会出现卡死。。
------解决方案--------------------
终极办法:使用线程中动态建立idhttp。
------解决方案--------------------
不在界面上用控件
动态创建idhttp,IdAntiFreeze来用
var
IdHTTP: Tidhttp;
IdAntiFreeze: TidAntiFreeze;
begin
IdAntiFreeze:=TIdAntiFreeze.Create(nil);
IdAntiFreeze.OnlyWhenIdle:=False;
IdHTTP:=Tidhttp.Create(nil);
try
StrHtml:=IdHTTP.Get(PChar('http://www.vdj8.com/'));
finally
IdHTTP.Disconnect;
IdHTTP.Free;
end;
------解决方案--------------------
可以用线程来解决,TidAntiFreeze可以解决界面不死锁,它采用的方式是不停的Application.ProcessMessage,会导致消息重入,如果想彻底解决,最好是采用线程加消息的方式。
------解决方案--------------------
可以用线程处理
------解决方案--------------------
我也没有没有好的办法 只能用线程
------解决方案--------------------
idhttp是阻塞的,不用线程不成。
关于在目的URL繁忙或者网络异常的情况下,,TIdHTTP.Get(URL)没有任何信息反馈,一直阻塞在这里,try...except也无法捕获异常,网络搜索这方的解决办法,但是一直找不到,ConnectTimeout或者ReadTimeout根本不起作用,哪位大侠有这方面的解决办法的??? 有时候正常的,但是到网络不好的时候就会出现卡死。。
------解决方案--------------------
终极办法:使用线程中动态建立idhttp。
------解决方案--------------------
不在界面上用控件
动态创建idhttp,IdAntiFreeze来用
var
IdHTTP: Tidhttp;
IdAntiFreeze: TidAntiFreeze;
begin
IdAntiFreeze:=TIdAntiFreeze.Create(nil);
IdAntiFreeze.OnlyWhenIdle:=False;
IdHTTP:=Tidhttp.Create(nil);
try
StrHtml:=IdHTTP.Get(PChar('http://www.vdj8.com/'));
finally
IdHTTP.Disconnect;
IdHTTP.Free;
end;
------解决方案--------------------
可以用线程来解决,TidAntiFreeze可以解决界面不死锁,它采用的方式是不停的Application.ProcessMessage,会导致消息重入,如果想彻底解决,最好是采用线程加消息的方式。
------解决方案--------------------
可以用线程处理
------解决方案--------------------
我也没有没有好的办法 只能用线程
------解决方案--------------------
idhttp是阻塞的,不用线程不成。