我在使用基于Soap的Web服务的projet工作,使用基于Soap的Web服务和2个本地智能手机应用程序(ios和android),经过webservice开发团队的一些编辑后,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 '
Res : ';
print_r($res);
echo '
';?>
我收到以下错误:
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缓存