PHP SoapClient - SOAP错误无法从外部实体加载致命错误

时间:2013-07-25 14:12:50

标签: php wsdl soap-client soapfault

我正在使用PHP SoapClient连接到Web服务。

$this->client = new SoapClient($this->wsdl, array('trace'=>true, 'cache' => WSDL_CACHE_DISK));

我每天都有很多请求,有时我从Soap获得以下错误异常:

SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://ws-rca.24broker.ro/?wsdl' : failed to load external entity "http://www.example.ro/?wsdl" in ...

我再说一遍,这不是一直发生的事情。它发生了几秒钟。

所以我想检查在错误发生的那一刻,是否可以访问WSDL,所以在try / catch语句中我使用带有上述url的file_get_contents,似乎WSDL已经启动了。因为我可以在错误发生的确切时刻获得XML代码。

所以我试过了:

  1. 与处理上述问题的托管公司的IT人员进行了交谈 网址;他们说他们的WSDL起来了。当时正在运行
  2. 检查了我的所有服务器日志文件;除了错误
  3. 之外没有任何与上述错误相关的内容

    有没有人知道发生了什么? 感谢。

1 个答案:

答案 0 :(得分:3)

查看你的php.ini以及是否:

default_socket_timeout = 0;

用以下内容进行更改:

default_socket_timeout = 300;

您也可以使用此功能http://php.net/manual/en/function.socket-set-timeout.php。 希望有所帮助。