Ich arbeite an einem Projekt, das einen Soap-basierten Webservice verwendet, der von PHP abgefragt wird, sowie 2 native Smartphone-Apps (iOS und Android). Nach einigen Änderungen, die vom Webservice-Entwicklungsteam vorgenommen wurden, wurden auf der PHP-Seite Probleme festgestellt, aber es gab keine Probleme bei den Smartphone-Apps.
Hier ist ein einfaches Skript, um das Problem zu reproduzieren
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 '';
?>
Ich erhalte den folgenden Fehler:
Schwerwiegender Fehler: Ungefangene SoapFault-Ausnahme:
[HTTP] URL kann nicht geparst werden 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} in /home/xxxx/www/test.php on line 14
Die Methode TPGetLocalisationVersion existiert und die Parameter sind korrekt. Dieser Code hat vor einigen Tagen noch funktioniert.
Ich kann auch das WSDL vom PHP-Webserver mit wget abrufen.
Ich habe die WSDL-Datei mit einem Online-Tool getestet und es scheint in Ordnung zu sein.
Irgendwelche Vorschläge, um dies zu debuggen? Ich bin mir sicher, dass der WSDL nicht zwischengespeichert wird, da ich auf einem dedizierten Server bin und den WSDL-Cache in der php.ini komplett deaktiviert habe.