2013-03-06 3 views
2

Я работаю над проектом, который использует веб-сервис на основе мыла, запрошенный PHP и двумя родными приложениями для смартфонов (ios and 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 существует и параметры являются правильными. этот код работал несколько дней назад.

Я также могу получить wsdl с веб-сервера PHP с помощью wget.

Я протестировал WSDL-файл с помощью некоторого онлайн-инструмента, и все выглядит нормально.

Любые предложения по отладке? Я уверен, что WSDL-не кэшируются, как я нахожусь на выделенном сервере и укомплектовать инвалидов кэш WSDL в php.ini

+0

Может вы видите '' или '' в wsdl? – Wrikken

ответ

5

проблема решена, проблема была в мыле: адрес внутри WSDL (плохое значение)

+0

правильным ключом является «мыло: адрес» – Leksat

Смежные вопросы