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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM