PHP SoapClient - 无法从外部实体加载 SOAP 错误 fatal error

标签 php wsdl soap-client soapfault

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

$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. 检查了我所有的服务器日志文件;除错误外与上述错误无关

有人知道发生了什么事吗? 谢谢。

最佳答案

查看您的 php.ini,如果:

default_socket_timeout = 0;

用类似的东西改变它:

default_socket_timeout = 300;

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

关于PHP SoapClient - 无法从外部实体加载 SOAP 错误 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860488/

相关文章:

c++ - 在 C++ (VS 2010) 中创建 SOAP 客户端,无需任何第三方库,如 gSOAP

javascript - 使用 PHP 对 unicode 字符进行转义

php - AFNetworking 2.0图片上传和JSON返回错误

php - MySQL - 向表中添加列?

web-services - Delphi 的另一个 WSDL 导入器?

java - 为 SOAP header 生成证书

php - Eloquent 地如何添加数组的所有值

api - Magento API 数据类型 : CartCustomerEntity

c# - wsdl.exe 和 wsimport 之间的区别

Node.js 中的 SOAP