本文整理自网络,侵删。
现在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开发firemonkey应用程序时无法打开窗体的解决
python4Delphi 示例应用程序在 Delphi 应用程序中运行简单的 python 脚本
Delphi中文件名函数-路径、名称、子目录、驱动器、扩展名
Delphi xe7 的 android bitmap转jpg图的参数问题
Delphi 在unicodestring中使用utf-8字符串
Delphi利用getprocessmemoryinfo获取进程占用内存大小
Delphi 把exe可执行文件等作为资源包含在Delphi编译文件中
更多相关阅读请进入《Delphi》频道 >>