PHP SoapClient 超时

2022-08-30 13:00:20

SoapClient 请求是否要超时并引发异常。截至目前,我得到PHP服务器响应超时,在我的情况下是60秒。基本上,我想要的是,如果在特定时间内没有来自Web服务的任何回复,则会引发异常,我可以捕获它。60秒的警告不是我想要的。


答案 1
ini_set("default_socket_timeout", 15);
$client = new SoapClient($wsdl, array(......));

connection_timeout选项定义连接到 SOAP 服务的超时(以秒为单位)。此选项不为响应速度较慢的服务定义超时。若要限制等待呼叫完成的时间,可以使用default_socket_timeout设置。


答案 2

无效的答案。请改为 https://stackoverflow.com/a/12119215/441739


虽然 Andrei 链接到一个不错的解决方案,但这个解决方案的代码较少,但得到了一个很好的解决方案:

* 使用 PHP5 SoapClient Extension 处理超时(由 Antonio Ramirez;2010 年 2 月 2 日)
示例代码:
//
// 设置连接超时(示例中为 15 秒)
//
$client = new SoapClient($wsdl, array(“connection_timeout” = > 15));
还有流上下文,如果你需要更细粒度的HTTP控制。请参阅新的 SoapClient()Docs 的选项。在表面下使用HTTP和SSL传输。stream_contextSoapClient


推荐