:: Visual Foxpro, Foxpro for DOS
Формирование 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 файл в качестве вложения к нему?
Ratings: 0 negative/0 positive
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Сделать то можно всё. Вопрос в том, какими усилиями. Вручную формировать многокомпонентые mime-сообщения - та ещё балалайка. Даже без учёта сложностей формирования собственно отдельных их компонент - и XML-ной и чисто бинарной...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM
Божья_коровка

Сообщений: 25720
Дата регистрации: 23.08.2001
.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 2 раз(а). Последнее : Божья_коровка, 17.01.18 15:41
Ratings: 0 negative/0 positive
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
Ratings: 0 negative/0 positive
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Нет, это про multipart/related, xop-mime и ещё кучу всяких разных стандартов.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
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
Ratings: 0 negative/0 positive
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
Ratings: 0 negative/0 positive
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Есть целая Система межведомственного электронного взаимодействия Российской Федерации версии 3.0, где полно таких сервисов с вложениями MTOM. Причем MTOM-вложения могут быть как в запросах, так и в ответах. Часть сервисов MTOM, к счастью, не использует, а использует Файловое хранилище (ФХ) в виде FTP-сервера, где всё несколько проще. Но с MTOM придется по-любому разбираться, вначале анализируя получаемые ответы под отладчиком, а потом пытаться конструировать собственные запросы с MTOM, когда придет понимание, как это нужно делать. Сервисы MTOM сейчас в РФ востребованы абсолютно во всех государственных органах и организациях.
Ratings: 0 negative/0 positive
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM
rvc44
Автор

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Вручную формировать многокомпонентые mime-сообщения не придется. Есть код, который формирует XML в нужном формате. На выходе, mime-сообщение дожно быть всегда двухкомпонентным, где вторым конпонентом должен быть всегда файл-вложение, например, скан.jpg или скан.png
Ratings: 0 negative/0 positive
Re: Формирование SOAP-запроса к веб-сервису с вложением MTOM
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Если не использовать активикс, то как раз и остаётся вручную формировать тело сообщения... Ну или таки использовать систему в которой встроена поддержка этой технологии. Мануалы говорят что в дотнете это реализовано, вполне себе в декларативном стиле (не нужно "вручную" формировать тело многокомпонентного сообщения), используя специальную настройку wsHttpBinding. Наверняка это реализовано и в Java (как я понимаю ноги у технологии растут именно оттуда)? yj Java к фоксу прикрутить явно посложнее будет чем дотнет.
А уж 2 там части или 22 - вопрос совершенно непринципиальный...


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика