【发布时间】:2013-01-17 08:48:11
【问题描述】:
我必须在 PHP 中为托管在 Windows / IIS 上的 Web 服务创建一个 SoapClient。 当我从本地 IIS + PHP 运行脚本时,它可以工作。 当我从 Apache 网络服务器的本地 XAMP 运行相同的脚本时,我总是得到相同的错误:
致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing WSDL:无法从“https://online.wings.eu:8080/wsdl/IWingsWeb”加载
<?php
$url = 'https://online.wings.eu:8080/wsdl/IWingsWeb';
$options["connection_timeout"] = 25;
$options["location"] = $url;
$options['trace'] = 1;
$client = new SoapClient($url,$options);
print_r($client->__getFunctions());
?>
在 Apache 上启用了 SOAP 和 openssl。 我还可以访问托管在非 Windows 服务器上的其他服务。
这是我的 Apache 的问题,还是托管 SOAP 服务器的 Windows 服务器的问题?
【问题讨论】:
-
可以直接下载wsdl文件吗? (例如通过使用 curl?)
-
是的,但是当我从本地文件加载 wsdl 时,当我使用服务的功能时出现另一个错误:致命错误:未捕获的 SoapFault 异常:[HTTP] 无法连接到主机...
-
您是直接下载的,还是在 PHP 中下载的?您确定 Apache 有权下载托管在 8080 端口上的页面吗?
-
我在浏览器中下载了源代码。当您输入 url 时,您将获得 wsdl。我将它作为 wsdl 文件保存在网络服务器上,我可以从脚本中加载它。
-
然后首先确保您可以在 Apache 中的 PHP 中执行相同的操作。
标签: php apache soap windows-server-2008