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

delphi tidhttp 超时的解决方案的相关文章

Android Studio安装后Fetching android sdk component information超时的解决方案

问题描述: Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试. Android Studio安装完成后,如果直接启动,Android Studio会去获取 android sdk 组件信息,这个过程相当慢,还经常加载失败,导致Android Studio启动不起开.解决办法就是不去获取android sdk 组件信息. 解决方法:

Delphi存取图像完整解决方案

http://blog.sina.com.cn/s/blog_693cf1cf0100plkq.html 对于涉及图像数据的数据库应用程序,图像数据的存取技术是一个关键.由于缺少技术文档及DEMO例程演示,为此笔者在网上搜索了相关资料,有的根本不能用,有的过于繁杂,有的应用范围太窄(如只能适用于BMP图像),有的写得过于简单理解起来十分困难...而且在网上这也是大家比较关心的一个问题.笔者对这个问题进行了反复实作和探索,下边笔者将通过一个完整的简单例子来说明如何保存和显示SQL数据库中的图像数据

ASP.NET Core MVC请求超时设置解决方案

设置请求超时解决方案 当进行数据导入时,若导入数据比较大时此时在ASP.NET Core MVC会出现502 bad gateway请求超时情况(目前对于版本1.1有效,2.0未知),此时我们需要在项目web.config配置文件中进行如下设置即可: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers>

CURL解析超时的解决方案

背景:项目中需要在抓取纷享销客CRM图片上传到OSS,调用OssClient.php时,容易发生解析超时(多重试几次就ok). 错误提示: [2019-04-08 19:41:01] lumen.DEBUG: 出错文件:/home/zrj/www/admin/yundou-admin/vendor/aliyuncs/oss-sdk-php/src/OSS/OssClient.php [2019-04-08 19:41:01] lumen.DEBUG: 出错编码:0 [2019-04-08 19:

MySQL 连接中 IP 或端口错误导致连接超时的解决方案

在 Visual Studio 中调用 mysql_real_connect() 函数连接 MySQL 过程中,当仅有连接 IP 错误时,会存在大概 20 秒的连接超时,最后连接失败:当有连接端口错误时,会存在大概 60 秒连接超时,最后连接失败. 通过在 mysql_real_connect() 前配置以下函数: mysql_options(handle, MYSQL_OPT_CONNECT_TIMEOUT, timeOut) 但并不能成功在超时时间之后,结束连接请求. 这里提供一种线程解决方

dubbo服务调用超时问题解决方案

dubbo在调用服务不成功时,默认是会重试两次的.这样在服务端的处理时间超过了设定的超时时间时,就会有重复请求,比如在发邮件时,可能就会发出多份重复邮件,执行注册请求时,就会插入多条重复的注册数据,那么怎么解决超时问题呢?如下 1.对于核心的服务中心,去除dubbo超时重试机制,并重新评估设置超时时间. 2.业务处理代码必须放在服务端,客户端只做参数验证和服务调用,不涉及业务流程处理 当然Dubbo的重试机制其实是非常好的QOS保证,它的路由机制,是会帮你把超时的请求路由到其他机器上,而不是本机

ASP.NET- 执行SQL超时的解决方案

在我们编写程序的时候,有时候要进行复杂的查询时,就会出现执行sql时间过长,引起页面执行不了并提示执行脚本超时,这就是我们遇到超时异常. 超时异常分两种情况:一种,是连接超时:一种,是执行超时.前者,通过SqlConnection.ConnectionTimeOut进行设置.后者,通过SqlCommand.CommandTimeOut进行设置. SqlConnection.ConnectionTimeout获取在尝试建立连接时终止尝试并生成错误之前所等待的时间.等待连接打开的时间(以秒为单位).

使用 Microsoft.ApplicationBlocks.Data SqlHelper 查询超时以及解决方案

 提示: 后面附有文件,不喜欢看吐槽的,直接到文章结尾下载 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令.它返回 SqlDataReader.DataSet 和 XmlReader 对象.您可以在自己的 .NET 应用程序中将其作为构造块来使用,以减少需要创建.测试和维护的自定义代码的数量.您可以下载完整的 C# 和 Visual Basic .

delphi Tidhttp 发送json格式报文

type TwmsThreadpostJson = class(TThread) private Furl: string; Fpostcmd: string; FResult: string; FBOOL: Boolean; protected procedure Execute; override; end; class function TWmsApplicationfunction.postjson(url, postcmd: string): string; var FThread: