2014-09-30 79 views
1

重新編輯以重新構建新信息。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參數時,該函數也可以正常工作。

回答

-1

這段代碼爲我工作讀取本地wsdl文件:

$service = new SoapClient( 
    dirname(__FILE__) .'/mywsdlfile.wsdl', 
    array( 
    "trace" => true, 
    "exceptions" => false) 
); 
+0

我沒有加載本地WSDL文件的任何問題。 – gazareth 2014-11-17 13:45:35