Ошибка SOAP; не в состоянии справиться

У меня ошибка: невозможно обработать запрос без действительного параметра действия.
Я хочу просто войти на сервер SOAP.
Мой wsdl здесь: https://demo.krd.pl/Siddin/2.1/Import.asmx?WSDL
и мой код выглядит так:

$client = new SoapClient('https://demo.krd.pl/Siddin/2.1/Import.asmx?WSDL', array(
'location' => 'https://demo.krd.pl/Siddin/2.1/Import.asmx?WSDL',
'trace' => 1,
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_NONE,
'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
'soap_version' => SOAP_1_2
));
$auth = new stdClass();
$auth->UserName = 'aaa';
$auth->Password = 'bbb';
$auth = new SoapVar($auth, SOAP_ENC_OBJECT, 'complexType', null, 'LoginRequest', 'types');
$result = $client->login($auth);
die(var_dump($result));

Как видите, я хочу вызвать метод ‘login’ на этом SOAP-сервере с параметром LoginRequest — он описан в файле wsdl. Как это сделать?

0

Решение

without a valid action parameter.

Это означает, что ваш php мыльный клиент не может создать необходимый HTTP-заголовок SOAPAction. Ваш WSDL определяет для метода входа это:

soapAction="http://Siddin.ServiceContracts/2006/09/Login"

Существует несколько причин, по которым он не может добавить заголовок, например этот:

'soap_version' => SOAP_1_2,

Попробуйте изменить это на

'soap_version' => SOAP_1_1,

Если это не помогло, я рекомендую вам начать общую отладку мыла, отследив отправляемое сообщение (включая заголовки http) и сравнив его с рабочим запросом, который вы можете настроить, например, используя SoapUI https://www.soapui.org/

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector