如何模拟Timeout属性?

时间:2017-05-23 10:37:18

标签: rest delphi delphi-10.1-berlin

我有一个远程Datasnap REST方法的调用,服务器有时不会响应,我需要检测它并终止应用程序,而不是让它冻结。

我使用DSRestConnection和Datasnap REST客户端模块,其中定义了所有远程方法,并附加到DSRestConnection。我找不到Timeout属性,AFAIK我只能在Datasnap Server上设置超时,但有时客户端失去与服务器的连接,所以我还需要在客户端上提出超时。

如果没有超时,我如何模拟超时?是否有一个类可以帮助实现这一目标,还是需要从头开始编写代码?在这种情况下,要采取的方法是对次要威胁进行远程调用,因此主线程仍然响应并使用类似Timer的方法来检查呼叫是否及时成功?。

我将不胜感激任何建议。谢谢。

1 个答案:

答案 0 :(得分:3)

TDSRestConnection应该允许您通过其 HTTP 属性访问基础TDSHTTP客户端。 TDSHTTP客户端公开 ConnectTimeout ReadTimeout 属性。也许后者就是你要找的。