delphi tidhttp 超时设置无效的解决方法


本文整理自网络,侵删。

 
现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒。connectTimeout和readTimeout都试过了,网上找了一圈,有人提出修改源码,我没试,应该也可以。

我采用的是把idhttp.get方法放到线程里,在主线程定时检查返回状态,这样就可以控制超时时间了,伪代码如下。

strResult:='';

 

Tthread.CreateAnonymousThread(
 procedure
 begin
   strResult := idhttp.get('url');
end).Start;

 

for i := 0 to 4 do
begin
  if strResult<>'' then
            break;
  application.ProcessMessages;
  Tthread.Sleep(500);
  application.ProcessMessages;
end;

相关阅读 >>

Delphi fmx获取屏幕方向

postmessage和sendmessage的区别

Delphi win10系统通知 notificationcenter1 基本用法

Delphi pchar和array [0..255] of char的区别

Delphi下遍历文件夹下所有文件的递归算法

Delphi byte类型算术运算

Delphi xe10 麦克风、摄像头操作

Delphi环境下基于spcomm控件开发串口通讯报文字节丢失的问题解决

Delphi在桌面上显示文字代码

Delphi winapi: getwindowtextlength - 获取窗口标题长度

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...