delphi tidhttp 超时的解决方案

如今delphi都发布到xe10.1了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,无论你设置为多少都要10-20秒。connectTimeout和readTimeout都试过了,网上找了一圈,有人提出修改源码,我没试,应该也能够。
我采用的是把idhttp.get方法放到线程里,在主线程定时检查返回状态,这样就能够控制超时时间了,代码以下。
 1 strResult:='';
 3 Tthread.CreateAnonymousThread(
 4  procedure
 5  begin
 6    strResult := idhttp.get('url');
 7 end).Start;
 8  
 9 for i := 0 to 4 do
10 begin
11   if strResult<>'' then
12             break;
13   application.ProcessMessages;
14   Tthread.Sleep(500);
15   application.ProcessMessages;
16 end;
相关文章
相关标签/搜索