2013-03-06 32 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