У меня есть некоторые данные, которые нужно отправить на сервер в формате SOAP. Этот сервер немедленно подтвердит, что получил сообщения. Через несколько часов я получаю (возможно, с другого сервера) сообщение SOAP, содержащее информацию об обработанных данных.
Я прочитал Stackoverflow: Как отправить запрос SOAP и получить ответ . Тем не менее, ответы 8 лет. Хотя они все еще могут работать, возможно, существуют более новые методы.
И действительно, кажется: у Microsoft есть System.Web.Services.Protocols, с такими классами, как SoapMessage , SoapClientMessage, SoapServerMessage и т. Д.
Глядя на классы, я нахожу множество SOAP-подобных классов (заголовки, расширения, клиентские сообщения, серверные сообщения ... Обычно приведенные примеры дают мне представление о том, как эти классы работают вместе и как их использовать. Документы MSDN Я могу только найти примеры того, как обрабатывать уже существующие сообщения SOAP.
Учитывая некоторые данные, которые нужно отправить, как я могу как-то обернуть эти данные в один из этих классов SOAP и отправить это сообщение?
Эти классы предназначены для этой цели? Или я должен придерживаться метода 2011 года, в котором вы создадите веб-запрос SOAP, отформатировав данные XML в формате мыла, как подсказывает вышеупомянутый вопрос Stackoverflow?
Мне очень жаль, обычно я бы писал вещи, которые я пробовал. Увы, я не вижу связи между предоставляемыми классами SoapMessage . Понятия не имею, как их использовать.
Добавление после комментариев
Я использую Windows Server / Visual Studio (новейшие версии) / .NET (новейшие версии) / C # (новейшие версии).
Связь с сервером является взаимной аутентификацией. Сертификат, который мне нужно использовать для связи с сервером, имеет формат PEM (CER / CRT). Закрытый ключ - RSA. Этот сертификат выдается надлежащим центром сертификации, сервер также будет использовать сертификаты, используемые соответствующим центром сертификации. Поэтому мне не нужно создавать новый сертификат (на самом деле, он не будет принят). При необходимости я готов конвертировать сертификаты, используя такие программы, как OpenSsl и т. П.
Я пытался использовать Apache TomCat для общения, но мне кажется, что это слишком много для задачи отправки одного сообщения SOAP в день и ожидания одного ответа в день.
Может быть, из-за того, что java - это совершенно новый метод для меня, мне было трудно увидеть содержимое полученных сообщений. Итак, вернемся к C # и .NET.
Я планировал создать DLL, которая будет использоваться консольным приложением. Функция будет иметь некоторые данные в потоке в качестве входных данных. Он будет создавать мыльное сообщение, отправлять его, ждать ответа о том, что сообщение было получено правильно, и ждать (возможно, несколько часов) нового сообщения Soap, содержащего результаты обработанных данных. Чтобы сделать правильные отчеты и отмена возможными, я думаю, что лучше всего сделать это с помощью async-await
Если отправка заказа и ожидание результата не могут быть выполнены в одном приложении, я хочу создать службу Windows, которая будет прослушивать ввод, но я предпочитаю сделать ее простой.
(Виртуальный) компьютер будет использоваться только для этой задачи, поэтому больше никому не нужно будет слушать порт 443. Будет отправляться одно сообщение с заказом в день и одно сообщение с результатом в день.