resolve SoapFault exception: [HTTP] Unable to parse URL

Nico AD picture Nico AD · Mar 6, 2013 · Viewed 8.3k times · Source

I work on a projet which use a Soap based webservice queried by PHP and 2 native smartphone apps (ios and android) , after some edits made by the webservice development team, things were broken on PHP side but no problems from smartphone apps.

here is a simple script to reproduce the problem

<?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>';

?>

I get the following error:

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 

the method TPGetLocalisationVersion exists and the parameters are correct. this code used to work some days ago.

I can also fetch the wsdl from the PHP Webserver using wget.

I tested the WSDL file with some online tool and it seems ok.

Any suggestions to debug this? I m sure the WSDL is not cached as I m on a dedicated server and completly disabled WSDL cache in php.ini

Answer

Nico AD picture Nico AD · Mar 7, 2013

problem solved , the problem was in the soap:adress inside the WSDL (bad value)