我在代码中有以下内容:
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服务超时错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)