现在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;
时间: 2024-10-10 17:33:42