сторонний сервис должен отправить в мой сервис SOAP запрос следующего типа:
spoiler
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AsyncSendMessageRequest>
<messageInfo>
<messageId>9fc9337e-e1af-4b92-8e91-ffb3e80e2d34</messageId>
<correlationId>3893298</correlationId>
<serviceId>MN_E_REQUEST_FOR_IPORT</serviceId>
<messageType>REQUEST</messageType>
<messageDate>2023-06-21T16:56:00.109+06:00</messageDate>
<sender>
<senderId>login</senderId>
<password>password</password>
</sender>
</messageInfo>
<messageData>
<data>
<typedRequestFormImportData xsi:type="typedRequestFormImportData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<importSource>ESI</importSource>
<updatedValues>
<code>oso</code>
<values>
<complexValue>
<code>form_edu</code>
<values>
<string>1</string>
</values>
</complexValue>
<complexValue>
<code>name_oso</code>
<values>
<string>***** </string>
</values>
</complexValue>
<complexValue>
<code>parallel</code>
<values>
<string>13</string>
</values>
</complexValue>
<complexValue>
<code>issue_date</code>
<values>
<date>2021-06-08T00:00:00+06:00</date>
</values>
</complexValue>
<complexValue>
<code>region</code>
<values>
<string>711410800</string>
</values>
</complexValue>
<complexValue>
<code>country</code>
<values>
<string>47</string>
</values>
</complexValue>
<complexValue>
<code>arrival_date</code>
<values>
<date>2021-06-09T00:00:00+06:00</date>
</values>
</complexValue>
<complexValue>
<code>language_edu</code>
<values>
<string>01</string>
</values>
</complexValue>
<complexValue>
<code>disposal_date</code>
<values>
<date>2021-06-09T00:00:00+06:00</date>
</values>
</complexValue>
</updatedValues>
<externalRequestChainId>3893298</externalRequestChainId>
<externalRequestId>836412</externalRequestId>
</typedRequestFormImportData>
</data>
</messageData>
</AsyncSendMessageRequest>
Как можно реализовать на свой стороне принятие этого запроса посредством ASP.NET Core
Написал в контроллере:
spoiler
[AllowAnonymous]
[Route("/nedenrol")]
public async Task<IActionResult> SoapTest1([FromBody] XmlDocument soapEnvelope)
{
// Обработка SOAP-запроса
// Прочитайте SOAP-запрос из тела HTTP-запроса
var xmlDoc = soapEnvelope;
........
..........
// Создание XML-ответа
xmlDoc.LoadXml(@$"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
<asyncSendMessageRequest>
<messageInfo>
<messageId>{Guid.NewGuid()}</messageId>
<correlationId>3893298</correlationId>
<serviceId>MN_E_REQUEST_FOR_IPORT</serviceId>
<messageType>NOTIFICATION</messageType>
<messageDate>{formattedDate}</messageDate>
<sender>
<senderId>login</senderId>
<password>password</password>
</sender>
</messageInfo>
<messageData>
<data xmlns:ns2=""http://bip.bee.ru/AsyncChannel/v10/Types"">
<typedRequestFormImportData>
<importSource></importSource>
<updatedValues>
<code>processing_status</code>
<values>
<domainItemData>
<code>IN_PROCESSING</code>
<ruValue>В обработке</ruValue>
</domainItemData>
</values>
</updatedValues>
</typedRequestFormImportData>
</data>
</messageData>
</asyncSendMessageRequest>
");
// Отправьте SOAP-ответ
var response = Content(xmlDoc.OuterXml, "text/xml");
return response;
return Ok();
}
Правильно ли я делаю? Владелец второго сервиса который шлет мне запрос говорит что запросы не идут в мою сторону. Ошибка:
Problem writing SAAJ model to stream: Error writing request body to server
Подскажите правильно ли я принимаю SOAP? и вчем может быть дело?