设置超时 SOAP 客户端 (Zend Framework)
我正在使用 SOAP 请求 Web 服务,我需要为其设置请求超时。
new Zend_Soap_Client(http://www.aaa.com/ws/Estimate.asmx?wsdl",
array('encoding' => 'UTF-8');
我也尝试过传递 'connection_timeout'=>100
但它看起来像“未知 SOAP 客户端选项”。请建议我可以设置超时的方法。
谢谢
I'm requesting a webservice using SOAP for which I need to set a request timeout.
new Zend_Soap_Client(http://www.aaa.com/ws/Estimate.asmx?wsdl",
array('encoding' => 'UTF-8');
I have also tried passing 'connection_timeout'=>100
but it seems like "unknow SOAP client option". Please suggest a way I can set the set timeout.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我找到了一个使用 Zend_Framework 设置超时的解决方案:
如果您有这样的 SoapClient-Object:
您可以设置 HTTP 请求的超时。 PHP 中的默认超时时间是 30 秒。使用以下代码,您可以将其设置为 1 分钟。
发现于 downlifesroad.com
I found a solution to set the timeout with Zend_Framework:
If you have your SoapClient-Object like this:
You can set the timeout for HTTP-Requests. The default timeout in PHP is 30 seconds. With the following code you can e.g. set it to 1 minute.
Found on downlifesroad.com
不支持连接超时选项,代码存在于 Zend_Soap_Client 中但已注释
Connection timeout option is not supported, the code is present in Zend_Soap_Client but commented
这是使用 ZendHttpClient 和 Zend_Http_Client_Adapter_Curl 的建议解决方案。
这个想法是您发送一个 http 请求,其中 SOAP 信封作为请求中的字符串。
完整要点代码此处
Here is a suggested solution using ZendHttpClient and Zend_Http_Client_Adapter_Curl.
The idea is that you send an http request with the SOAP envelope as string at the request.
Full gist code here
我通过使用本机 PHP SoapClient 类解决了这个问题
...可以使用调用之前定义整个持续时间限制
。
就像一个魅力......;)
I solved this issue by using native PHP SoapClient class...
You can define the whole duration limit using
Before calling it.
Works like a charm... ;)