解决SoapFault异常:[HTTP]无法解析URL

时间:2013-03-06 13:47:08

标签: soap php webservice-client soapfault

我正在使用基于Soap的Web服务的projet工作,该服务由PHP和2个原生智能手机应用程序(ios和android)查询,经过Web服务开发团队的一些编辑后,PHP方面的内容被打破但智能手机应用程序没有问题

这是一个重现问题的简单脚本

<?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文件,看起来没问题。

有任何调试建议吗?我确信WSDL没有缓存,因为我在专用服务器上并且在php.ini中完全禁用了WSDL缓存

1 个答案:

答案 0 :(得分:5)

问题解决了,问题出在soap:adress里面的WSDL(错误值)