Web服务 – Delphi中的Web服务超时错误

Web服务 – Delphi中的Web服务超时错误,第1张

概述我有一个发出SOAP请求的客户端应用程序.我已将超时设置为20分钟.但是,有时我会看到10秒后发生超时错误. 我在代码中有以下内容: RIO.HTTPWebNode.ReceiveTimeout := 1200000 我需要设置ConnectTimeout和SendTimeOut吗?目前它们被设置为默认值0.这些设置有什么区别? 我正在使用Delphi 2007. 进一步查看错误消息,我看到我得到 我有一个发出SOAP请求的客户端应用程序.我已将超时设置为20分钟.但是,有时我会看到10秒后发生超时错误.
我在代码中有以下内容:

RIO.httpWebNode.ReceiveTimeout := 1200000

我需要设置ConnectTimeout和SendTimeOut吗?目前它们被设置为默认值0.这些设置有什么区别?

我正在使用Delphi 2007.

进一步查看错误消息,我看到我得到“ *** 作超时……”.所以我应该将ReceiveTimeOut设置为零,因为我真的不想要任何超时?

解决方法 CodeGear的SOAPhttpTrans实现设置全局超时,而不是每个会话.以下是ThttpReqResp.Send的相关代码:

{ Timeouts }if FConnectTimeout > 0 then  Check(not InternetSetoption({Request}nil,INTERNET_OPTION_CONNECT_TIMEOUT,Pointer(@FConnectTimeout),SizeOf(FConnectTimeout)));if FSendTimeout > 0 then  Check(not InternetSetoption({Request}nil,INTERNET_OPTION_SEND_TIMEOUT,Pointer(@FSendTimeout),SizeOf(FSendTimeout)));if FReceiveTimeout > 0 then  Check(not InternetSetoption({Request}nil,INTERNET_OPTION_RECEIVE_TIMEOUT,Pointer(@FReceiveTimeout),SizeOf(FReceiveTimeout)));

我必须做的是使用OnBeforePost处理程序来设置超时:

transport.OnBeforePost := configurehttpRequest;procedure Tsomething.configurehttpRequest(const httpReqResp: ThttpReqResp; Data: Pointer);begin  InternetSetoption(Data,Pointer(@FconnectTimeoutMS),SizeOf(FconnectTimeoutMS));  InternetSetoption(Data,Pointer(@FsendTimeoutMS),SizeOf(FsendTimeoutMS));  InternetSetoption(Data,Pointer(@FreceiveTimeoutMS),SizeOf(FreceiveTimeoutMS));end;

这些选项的MSDN文档位于http://msdn.microsoft.com/en-us/library/aa385328%28VS.85%29.aspx

总结

以上是内存溢出为你收集整理的Web服务 – Delphi中的Web服务超时错误全部内容,希望文章能够帮你解决Web服务 – Delphi中的Web服务超时错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1080914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存