Подтвердить что ты не робот

Запрос PHP SoapClient: недействительный метод для этой службы

Хорошо, мне кажется, мне нужны еще две глаза, чтобы посмотреть на это. Я делаю простой вызов phap soapclient веб-службе echo на удаленном сервере. Я уверен, что у меня нет опечаток и что вызов функции верен. Тем не менее, я получаю фатальную ошибку, заявляя, что функция не является допустимым методом. Ниже приведен параметр var_dump типов веб-сервисов.

array (4) {[0] = > string (88) "struct EspException {string Code; string Аудитория; string Источник; string Message;}" [1] = > string (71) "struct ArrayOfEspException {string Source; EspException Exception;}" [2] = > string (43) "struct EchoTestRequest {string ValueIn;}" [3] = > string (45) "struct EchoTestResponse {string ValueOut;}" }

Неустранимая ошибка: исключить исключение SoapFault: функция [Client] ( "EchoTestRequest" ) не является допустимым методом для этой службы в /home/grafixst/public _html/cpaapp/echo_test.php:38 Трассировка стека: # 0/home/grafixst/public_html/cpaapp/echo_test.php(38): SoapClient → __ call ('EchoTestRequest', Array) # 1/home/grafixst/public_html/cpaapp/echo_test.php(38): SoapClientAuth- > EchoTestRequest (Array) # 2 {main} брошен в /home/grafixst/public _html/cpaapp/drew/echo_test.php в строке 38

Вот код, который я использую для вызова:

<?php 

  require_once('SoapClientAuth.php');

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

  #- Loading the WSDL document
  $server = "https://wsonline.seisint.com/WsAccurint/EchoTest?ver_=1.65";
  $wsdl = $server . "&wsdl";     

  $client = new SoapClientAuth($wsdl,
        array(
              'login' => $username,
              'password' => $password
             ));   

  $types = $client->__getTypes();

  var_dump($types);

  echo "</br>";

  $req = $client->EchoTestRequest(array('ValueIn' => 'echo'));

  print $req->ValueOut;
  echo "</br>";
?>
4b9b3361

Ответ 1

Простой запрос для доступных функций веб-службы решил проблему.

$functions = $client->__getFunctions ();
var_dump ($functions);

EchoTestRequest не был действительным вызовом функции. Правильным вызовом функции был EchoTest, который иллюстрируется дампом переменных функций.

array(1) { [0]=> string(54) "EchoTestResponse EchoTest(EchoTestRequest $parameters)" } 

Ответ 2

Я предполагаю, что вы не опечатка, и метод действительно доступен.

Попробуйте это

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

Это может быть из-за кэширования wsdl.