重新编辑以重新构建新信息。
我正在尝试通过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参数时,该函数也可以正常工作。
答案 0 :(得分:-1)
这段代码让我能够阅读本地wsdl
文件:
$service = new SoapClient(
dirname(__FILE__) .'/mywsdlfile.wsdl',
array(
"trace" => true,
"exceptions" => false)
);