Работа с Меркурием

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
finsoftrz
Ветеран
Сообщения: 785
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 07 Август 2018, 9:52

Глянул сегодня с утра, что за зверь. В общем, обмен xml-файлами с их сервисами. Интерфейс можно делать по разному, в том числе через curl.exe, по аналогии с Егаис. Вот такой пример для получения ответа работает:

Код: Выделить всё

'curl.exe -d @"' & 'req.xml'  & '" -H "Content-Type: text/xml; charset=utf-8" -u ' & 'user' & ':' & 'pswd' & ' https://api2.vetrf.ru:8002/platform/services/2.0/EnterpriseService' & ' -o ' & 'resp.xml'
Файлик req.xml делаем по их документации в зависимости от запроса. Он должен быть в кодировке utf8. В ответ получаем resp.xml (тоже в utf8), который парсим. Его вид тоже описан в документации и зависит от запроса. При наличии опыта работы с Егаис все выглядит очень похоже, объектная обвязка идентичная.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3402
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 07 Август 2018, 13:42

Классно ! :) А я пробовал, где-то пол-года назад, подключиться через LibCurl, но чего-то не задалось …
А можно просить какой-нибудь заведомо правильный req.xml ? Я бы тоже попробовал что-нибудь поиметь с Меркурия. :)
Вам помочь или не мешать ?

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 785
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 07 Август 2018, 14:02

Запрос 3 первых организаций с фрагментом в названии. Дальше я тоже пока не дошел... :-)

Код: Выделить всё

  fsFileMakerL.AddOutLine('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.vetrf.ru/schema/cdm/registry/ws-definitions/v2" xmlns:bs="http://api.vetrf.ru/schema/cdm/base" xmlns:dt="http://api.vetrf.ru/schema/cdm/dictionary/v2">')
  fsFileMakerL.AddOutLine('   <soapenv:Header/>')
  fsFileMakerL.AddOutLine('   <soapenv:Body>')
  fsFileMakerL.AddOutLine('      <ws:getRussianEnterpriseListRequest>')
  fsFileMakerL.AddOutLine('         <bs:listOptions>')
  fsFileMakerL.AddOutLine('            <bs:count>3</bs:count>')
  fsFileMakerL.AddOutLine('            <bs:offset>0</bs:offset>')
  fsFileMakerL.AddOutLine('         </bs:listOptions>')
  fsFileMakerL.AddOutLine('         <dt:enterprise>')
  fsFileMakerL.AddOutLine('            <dt:name>"ПЕРЕСВЕТ"</dt:name>')
  fsFileMakerL.AddOutLine('         </dt:enterprise>')
  fsFileMakerL.AddOutLine('      </ws:getRussianEnterpriseListRequest>')
  fsFileMakerL.AddOutLine('   </soapenv:Body>')
  fsFileMakerL.AddOutLine('</soapenv:Envelope>')
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3402
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 07 Август 2018, 14:04

Спасибо ! Для теста - подойдёт. :)
Я вот нечто похожее пробовал запихнуть туда сразу через LibCurl ...
Вам помочь или не мешать ?

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 785
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 07 Август 2018, 15:10

У меня работа с Егаис через curl.exe, поскольку там все примеры в доке на нем. Ну и подумал, зачем зоопарк плодить со всеми этими делами, пусть будет curl.exe. Другие тоже, видимо, после Егаиса его задействуют. Хотя сами меркурианцы рекомендуют soapUI.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3402
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 07 Август 2018, 16:21

finsoftrz писал(а):
07 Август 2018, 15:10
Хотя сами меркурианцы рекомендуют soapUI
Это не беда. Плохо, что они (как я понял) не довели сей чудный сервис до ума и не прикрутили к нему вариант обмена в JSON.
В Clarion JSON более дружелюбен, чем XML ...
Вам помочь или не мешать ?

Yufil
Ветеран движения
Сообщения: 987
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Работа с Меркурием

Сообщение Yufil » 08 Август 2018, 18:53

У себя среди старых программ нашёл фрагмент с загрузкой адресных данных через SOAP, и парсинг результатов, используя SOAPUi и самопальные модули Chttp и Cstr
https://mega.nz/#!0l5mCYaZ!lK3UXugElajL ... pOOcyTm8HU , там рутинка soaprequest ( стр.213) . Если интересно, попробую объяснить, что там творится и найду весь антураж ( классы и всё такое )...

Ответить