2013-08-12 3 views
0

У меня есть URL-параметры на моем вызове soapserver. Вызов 'mysoapserver.php? Версия = 1' работает хорошо, за исключением того, в этом случаеPHP soapserver с параметрами URL

mysoapserver.php? & версия WSDL = 1

SoapServer не выводит WSDL.

код выглядит следующим образом

$version = isset($_GET['version']) ? $_GET['version'] : 1; 
switch($version) { 
    case 1: 
    $wsdl = 'myservices.v1.wsdl'; 
    break; 
case 2: 
    $wsdl = 'myservices.v2.wsdl'; 
    break; 
default: 
    throw new SoapFault('Server',utf8_encode('error')); 
    break; 
} 
$mysoapserver = new SoapServer($wsdl); 
$mysoapserver->setClass('SOAPServices'); 
$mysoapserver->handle(); 

Любые идеи, как получить эту работу?

+0

Это не работает, потому что v не является допустимым запросом SOAP. Вы должны установить две разные конечные точки для своих SOAP-сервисов. – tlenss

+0

'$ _GET ['v']' никогда не будет установлен, если вы передадите '? Version = 1' ... – naththedeveloper

+0

version = 1 - это опечатка. Должно быть v = 1 – tok

ответ

0

У меня была та же проблема, GET был пуст. Проблема заключалась в том, что я читал ее в своем сервисе. Проблема в том, что мы не можем печатать внутри сервера, потому что это xml-файл, мы его пытаемся, он возвращает нам ошибку, тогда хороший трюк в этом.

$write = fopen("result.txt","w") or die("it doesnt exist"); 
//result.txt is in the root of the server 
fwrite($write, $_GET['version']); 
fclose($write); 

Сохранение результата в другом файле.

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