Ладно, мне кажется, мне нужны еще две глаза, чтобы посмотреть на это. Я делаю простой вызов phap soapclient веб-службе echo на удаленном сервере. Я уверен, что у меня нет опечаток и что вызов функции верен. Тем не менее, я получаю фатальную ошибку, заявляя, что функция не является допустимым методом. Ниже приведен параметр var_dump типов веб-сервисов.
array (4) {[0] => string (88) "struct EspException {string Code; string Аудитория; string Source; 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;} "}
- Попытка GET из api после публикации вопросов API
- Поддержание сеанса PHP в веб-приложении iPhone
- Как получить значение гендерного переключателя (мужчины, женщины) с CodeIgniter?
- Онтология и Интернет
- получить (динамическую страницу загрузки) с помощью PHP / CURL?
Неустранимая ошибка: исключить исключение 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>"; ?>
Простой запрос доступных функций веб-службы решил проблему.
$functions = $client->__getFunctions (); var_dump ($functions);
EchoTestRequest не был действительным вызовом функции. Правильным вызовом функции был EchoTest, который иллюстрируется дампом переменных функций.
array(1) { [0]=> string(54) "EchoTestResponse EchoTest(EchoTestRequest $parameters)" }
Я предполагаю, что вы не опечатка, и метод действительно доступен.
Попробуй это
ini_set("soap.wsdl_cache_enabled", "0");
Возможно, из-за wsdl был кэширован.