PHP无法使用SoapClient或file_get_contents访问WSDL文件
问题描述:
重新编辑以重新构建新信息。PHP无法使用SoapClient或file_get_contents访问WSDL文件
我想通过PHP访问SOAP API。 API的应用程序托管在我的公司网络上,并且WS在端口8080上公开。
我可以在我的浏览器(加载速度非常快)*问http://network-machine.local:8080/service?wsdl上的WSDL文件。但是,下面的代码片段只是导致的最长执行时间一个致命的错误超出:
new SoapClient('http://network-machine.local:8080/service?wsdl');
file_get_contents('http://network-machine.local:8080/service?wsdl');
PHP可以访问其他远程服务(包括WSDL)。
如果我将wsdl文件(及其导入的文件)保存到本地计算机并更新引用,PHP可以很好地访问API服务。它只是无法拉入WSDL。
所以,我认为这是某种网络/防火墙问题。有任何想法吗?
编辑更多的信息:
cURL工作得很好。使用cURL,我可以获得WSDL文件的总大小。当我使用该大小作为file_get_contents的MAXLENGTH参数时,该函数也可以正常工作。
答
这段代码为我工作读取本地wsdl
文件:
$service = new SoapClient(
dirname(__FILE__) .'/mywsdlfile.wsdl',
array(
"trace" => true,
"exceptions" => false)
);
我没有加载本地WSDL文件的任何问题。 – gazareth 2014-11-17 13:45:35