bemdev
@bemdev

Как правильно передать строку параметров в SOAP?

Добрый день! Подскажите пожалуйста как правильно передать параметры в soap сообщении через nodejs. Я передаю обычным способом

nodejs
пакет soap

const str = 'Hello, im string';

client.TestConnect(str, function(err, result, rawResponse, soapHeader, rawRequest) { 
    console.log(rawRequest);
});


Запрос получается примерно такой
<?xml version="1.0" encoding="utf-8"?><soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"><soap:Body><TestConnect xmlns="http://tempuri.org/">Hello, im string</TestConnect></soap:Body></soap:Envelope>


Но судя по ответам, ошибка формата строки. Я думаю, может как то надо иначе передавать параметры? Как ?
  • Вопрос задан
  • 974 просмотра
Решения вопроса 1
@RidgeA
Если воспользоваться средствами анализа wsdl (например www.wsdl-analyzer.com ) то можно увидеть, что метод TestConnect принимает запрос в виде
<s11:Envelope xmlns:s11='http://schemas.xmlsoap.org/soap/envelope/'>
  <s11:Body>
    <ns1:TestConnect xmlns:ns1='http://tempuri.org/'>
<!-- optional -->
      <ns1:s>?XXX?</ns1:s>
    </ns1:TestConnect>
  </s11:Body>
</s11:Envelope>


соответственно в коде нужно метод вызывать так

client.TestConnect({s:str}, function(err, result, rawResponse, soapHeader, rawRequest) { 
    console.log(rawRequest);
});


где s - это название параметра
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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