Обращение к внешнему приложению через SOAP

Добрый день, Друзья!

Подскажите, как мне правильно сделать запрос к внешнему приложению, который понимает только SOAP, получить ответ и разобрать его на составляющие?

Спасибо

В целом, все также, как и с REST-запросами, но с учетом своих особенностей.

  1. Отправляется XML, который нужно сформировать (вероятно просто соединением строк)
  2. В хедерах запроса нужно указать, что передается именно xml. Для этого добавляется заголовок, как на скриншоте.
  3. Ответ нужно правильно разобрать. Можно использовать регулярки, а можно превратить ответ в JSON (на скрине именно этот вариант, блок XML to JSON) и работать с ним (как вариант - сделать виртуальную модель и приводить ответ к ней)

Спасибо, буду пробовать!

Сижу, ломаю голову!

не получается никак собрать модель. На php в этом вопросе проще, использую SoapClient

$client = new SoapClient(“http://10.100.100.100:10101/IntegrationService/IntegrationService.asmx?WSDL”, array( ‘soap_version’ => SOAP_1_2));
$params = array(“domain” => “DOMAIN”, “userName” => “USER”, “password” => “PWD”);

$session = $client->OpenSession($params);
$sessionID = $session->OpenSessionResult->Value->SessionID;

на данный момент у меня есть таблица SQL где я храню данные о сервере (Имя сервера и URL) и таблица со списком параметров, необходимых для подключения (Домен, имя пользователя, пароль)

я не могу понять, как мне собрать OpenSession($params); вот эту часть запроса, чтобы вставить ее в “Request body”

Если на вскидку, то будет что-то подобное

<soap12:Envelope xmlns:soap12=“http://www.w3.org/2003/05/soap-envelope” xmlns:tns=“http://tempuri.org/”>
soap12:Body
tns:OpenSession
tns:domainDOMAIN</tns:domain>
tns:userNameUSER</tns:userName>
tns:passwordPWD</tns:password>
</tns:OpenSession>
</soap12:Body>
</soap12:Envelope>

Но, в любом случае, это не не относится к работе АппМастера. Можно протестировать отправку запроса в тот же Постмане и если там все заработает, то уже собирать его же в АМ