Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
rvc44 Автор Сообщений: 2211 Откуда: Тамбов Дата регистрации: 06.12.2005 |
Добрый день, коллеги!
Кто-нибудь пробовал из VFP формировать сабж? Что такое MTOM описано здесь: [url]hттp://en.wikipedia.org/wiki/Message_Transmission_Optimization_Mechanism[/url] Знаменитый Rick Strahl пытался решить данную задачу через использование WCF для подключения к службе MTOM в .NET, а затем вызвать ее из VFP, если она заработает. Однако, работоспособности таким способом ему достичь не удалось. Что-то пошло не так, поскольку работа с сервисами MTOM зачастую может быть достаточно сложной, особенно если сервисы реализованы на Java, где используются очень строгие правила типизации, которые трудно реализовать в полном соответствии из VFP. В итоге, в экспериментальном приложении Rick Strahl, его клиент WCF начал формировать действительные сообщения MTOM, но сервер их отказался принимать. В связи с этим, Rick решил реализовать ручную кодировку SOAP-запроса строковыми данными, что и было успешно сделано в итоге. Как говорит Rick, это последнее средство, если ничего не работает. В России, часто такой подход называют "закат солнца вручную". Всегда есть способы сделать какую-либо работу, но некоторые из них легче других. Подход с формированием и отправкой сформированных вручную XML-запросов к веб-сервисам через oXmlHttp.Send(0h + lcRequest) стараниями данного форума, общеизвестен. Как прикрутить туда формирование MIME файла, содержащего 8-битные (не шифрованные) бинарные данные? Очень хочется повторить опыт Рика с ручной кодировкой SOAP-запроса с вложением MTOM строковыми данными. По приведенным ниже ссылкам, для формирования XML с вложением MTOM из VFP (SOAP MTOM MIME), используется Chilkat ActiveX for 32-bit and 64-bit Windows: hттps://www.example-code.com/foxpro/mtom_xop_attachment.asp hттps://www.example-code.com/foxpro/mime_extract_binary_soap_mtom.asp (замените тт на tt в приведенных выше ссылках). Возможно ли обойтись без соответствующего ActiveX? Пока вопрос в том, как формировать MIME sub-parts вручную, например, собственно XML и Base64-encoded PDF или JPG файл в качестве вложения к нему? |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Сделать то можно всё. Вопрос в том, какими усилиями. Вручную формировать многокомпонентые mime-сообщения - та ещё балалайка. Даже без учёта сложностей формирования собственно отдельных их компонент - и XML-ной и чисто бинарной...
------------------ WBR, Igor |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
.
------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 2 раз(а). Последнее : Божья_коровка, 17.01.18 15:41 |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Это про xmlhttp.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + cBoundary) ?
forum.foxclub.ru 2Игорь. Аа. Так сразу бы и сказал ) Почитал: src-code.net (Хабибуллин И. Ш. Разработка Web-служб средствами Java) Исправлено 2 раз(а). Последнее : of63, 17.01.18 15:53 |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Нет, это про multipart/related, xop-mime и ещё кучу всяких разных стандартов.
------------------ WBR, Igor |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
rvc44 Автор Сообщений: 2211 Откуда: Тамбов Дата регистрации: 06.12.2005 |
Да, это про:
oXmlHttp.setRequestHeader("Content-Type", 'multipart/related; start-info="text/xml"; type="application/xop+xml"') Трудности не пугают, если другого выхода нет. Хотелось бы изучить, например с помощью утилиты WireShark, какой-нибудь реальный работающий пример с отправкой бинарно-текстовой строки, которую нужно подготовить в переменной lcRequest перед отправкой запроса MIME командой oXmlHttp.Send(0h + lcRequest). Вот что в ответ возвращается: --uuid:2e6bca7a-a770-4f85-af41-7c3f7dfc6774 Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" Content-Transfer-Encoding: binary Content-ID: <''.phorum_html_encode('root.message@cxf.apache.org').''> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:GetResponseResponse xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1">...</ns2:GetResponseResponse></soap:Body></soap:Envelope> --uuid:2e6bca7a-a770-4f85-af41-7c3f7dfc6774-- Как заставить это отправляться? Исправлено 1 раз(а). Последнее : rvc44, 17.01.18 17:04 |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
А пример запроса?
Доб. Просто встреченные ссылки (грешат на преобразователь в .Send(данные), но у нас 0h+данные...) stackoverflow.com habrahabr.ru www.w3.org - SOAP Messages with Attachments ru.tmsoftstudio.com Надо адрес/пример для экспериментов, подбирать. Если есть описалово сервиса, то тоже надо почитать. Исправлено 5 раз(а). Последнее : of63, 17.01.18 18:04 |
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
rvc44 Автор Сообщений: 2211 Откуда: Тамбов Дата регистрации: 06.12.2005 |
Есть целая Система межведомственного электронного взаимодействия Российской Федерации версии 3.0, где полно таких сервисов с вложениями MTOM. Причем MTOM-вложения могут быть как в запросах, так и в ответах. Часть сервисов MTOM, к счастью, не использует, а использует Файловое хранилище (ФХ) в виде FTP-сервера, где всё несколько проще. Но с MTOM придется по-любому разбираться, вначале анализируя получаемые ответы под отладчиком, а потом пытаться конструировать собственные запросы с MTOM, когда придет понимание, как это нужно делать. Сервисы MTOM сейчас в РФ востребованы абсолютно во всех государственных органах и организациях.
|
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
rvc44 Автор Сообщений: 2211 Откуда: Тамбов Дата регистрации: 06.12.2005 |
Вручную формировать многокомпонентые mime-сообщения не придется. Есть код, который формирует XML в нужном формате. На выходе, mime-сообщение дожно быть всегда двухкомпонентным, где вторым конпонентом должен быть всегда файл-вложение, например, скан.jpg или скан.png
|
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если не использовать активикс, то как раз и остаётся вручную формировать тело сообщения... Ну или таки использовать систему в которой встроена поддержка этой технологии. Мануалы говорят что в дотнете это реализовано, вполне себе в декларативном стиле (не нужно "вручную" формировать тело многокомпонентного сообщения), используя специальную настройку wsHttpBinding. Наверняка это реализовано и в Java (как я понимаю ноги у технологии растут именно оттуда)? yj Java к фоксу прикрутить явно посложнее будет чем дотнет.
А уж 2 там части или 22 - вопрос совершенно непринципиальный... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |