2013-03-06 57 views
2

我使用基於Soap的Web服務查詢PHP和2個本地智能手機應用程序(ios和android),在webservice開發團隊進行了一些編輯之後,在PHP方面被打破,但從智能手機應用程序沒有問題。解決SoapFault異常:[HTTP]無法解析URL

這裏是一個簡單的腳本來重現問題

<?php 
error_reporting(E_ALL); 
$url   = 'http://www.xxxxx.com/service.awws?wsdl'; 

$sKey = 'thekey'; 

$client= new SoapClient($url, array('trace' => 1, 
            'exception' => 1, 
            'encoding'  => 'UTF-8', 
            'cache_wsdl' => WSDL_CACHE_NONE)); 


$params = array('sKey' => $sKey, 'nLangID' => 1); 

$res  = $client->TPGetLocalisationVersion($params); 

echo '<pre>Res : '; 
print_r($res); 
echo '</pre>'; 

?> 

我得到以下錯誤:

Fatal error: Uncaught SoapFault exception: 
[HTTP] Unable to parse URL in /home/xxxx/www/test.php:14 Stack trace: #0 [internal function]: 
SoapClient->__doRequest('__call('TPGetLocalisati...', Array) #2 /home/tmpweb/www/test.php(14): 
SoapClient->TPGetLocalisationVersion(Array) #3 {main} thrown in /home/xxxx/www/test.php on line 14 

方法TPGetLocalisationVersion存在和參數是否正確。這個代碼在幾天前用於工作。

我也可以使用wget從PHP Webserver獲取wsdl。

我用一些在線工具測試了WSDL文件,看起來沒問題。

任何建議來調試呢?我敢肯定,我

+0

能你在wsdl中看到''或''? – Wrikken 2013-03-06 13:53:18

回答

5

問題解決在php.ini一個專用的服務器和完全地禁用WSDL緩存M上WSDL沒有被緩存,問題是在肥皂:WSDL內部ADRESS(壞值)

+0

正確的鍵是「soap:address」 – Leksat 2017-05-11 12:28:53