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) 
); 
+0

我没有加载本地WSDL文件的任何问题。 – gazareth 2014-11-17 13:45:35