@andrys2007

Делают тестовый сервис PHP-SOAP-WSDL. Вызываю одну функцию, а выполняется другая?

Приветствую. Хочу разобрться как SOAP сервис работает на PHP (Сервер-Клиент) и наткнулся на такую проблему: Есть описание WSDL:

<?php
/**
* smsservice.wsdl.php
*/
header("Content-Type: text/xml; charset=utf-8");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
?>









Есть серверная функция:

<?php

header("Content-Type: text/html; charset=utf-8");
header('Cache-Control: no-store, no-cache');
header('Expires: '.date('r'));

ini_set("soap.wsdl_cache_enabled", "0"); // отключаем кеширование WSDL-файла для тестирования
ini_set('display_errors', 1);

file_put_contents("log.txt","smsservice_1 \r\n",FILE_APPEND);

class TestClass
{
function getUserINFO($ID)
{
file_put_contents("log.txt","call getInfoUser \r\n",FILE_APPEND);
return array("FIO" => "Сидоров Иван Андреевич","ADRES"=>"Трудовая 160","STATUS"=>"Открыто","ID"=>$ID);
}

function getOrganINFO($ID)
{
file_put_contents("log.txt","call getInfoUser \r\n",FILE_APPEND);
return array("FIO" => "РОГА И КОПЫТА","ADRES"=>"Казыбек би","STATUS"=>"Свернулась","ID"=>$ID);
}

}

$server = new SoapServer("www.sp.com/smsservice.wsdl.php");
$server->setClass("TestClass");
$server->handle();

?>

И есть клиент:
<?php

header("Content-Type: text/html; charset=utf-8");
header('Cache-Control: no-store, no-cache');
header('Expires: '.date('r'));

ini_set("soap.wsdl_cache_enabled", "0" );
ini_set('display_errors', 1);

ini_set("soap.wsdl_cache_ttl", "0" );



error_reporting(E_ALL & ~E_NOTICE);

$client = new SoapClient("www.sp.com/smsservice.wsdl.php",array( 'soap_version' => SOAP_1_2));

//$rez=$client->getOrganINFO(50000);

echo '
---------------getUserINFO-------------
';

$rez=$client->__soapCall('getUserINFO',array("a",50000));
var_dump($rez);

echo '
--------------getOrganINFO--------------
';

$rez=$client->__soapCall('getOrganINFO',array("a",10000));
var_dump($rez);

?>

В WSDL описал что у меня есть две функции на сервере getUserINFO, getOrganINFO
но когда я вызываю из клиента getOrganINFO ,у меня всегда вызывается getUserINFO ...

Почему так ? Да ,у них параметры одинаковые , но тем не менее это разные функции и должны быть разные вызвовы.
  • Вопрос задан
  • 365 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы