我正在使用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代码。
所以我试过了:
有没有人知道发生了什么? 感谢。
答案 0 :(得分:3)
查看你的php.ini以及是否:
default_socket_timeout = 0;
用以下内容进行更改:
default_socket_timeout = 300;
您也可以使用此功能http://php.net/manual/en/function.socket-set-timeout.php。 希望有所帮助。