XML-запрос + Delphi
От: YuRock Украина  
Дата: 12.06.14 16:46
Оценка:
Добрый день!

Столкнулся с проблемой составления запроса через делфовые средства.

Вот рабочий запрос (полученный сниффером, генерился из 1С):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Header/>
 <soap:Body>
  <m:CheckBalance xmlns:m="http://comarch.pl/loyalty/web/ws/clm">
   <CheckBalance xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <m:type>B</m:type>
   </CheckBalance>
  </m:CheckBalance>
 </soap:Body>
</soap:Envelope>


Вот максимально похожий запрос, который я смог получить (он не работает — в ответе сервера приходит "operation description is missing parameter description")
на Delphi 7 с помощью HTTPRIO (версия, думаю, тут не важна):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soap:Body>
  <CheckBalance xmlns="http://comarch.pl/loyalty/web/ws/clm">
   <type>B</type>
  </CheckBalance>
 </soap:Body>
</soap:Envelope>


Такое получил с помощью
InvRegistry.RegisterInvokeOptions( TypeInfo(iLPPort), ioDocument );
в initialization WSDL'ки и правки константы SSoapNameSpacePre с SOAP-ENV на soap в SOAPConst.pas

Если у кого есть идеи, как еще приблизить мой запрос работающему — поделитесь, пожалуйста.
Особенно интересует "добавочный" уровень вложенности m:CheckBalance и вообще приставка "m:" в параметрах (m: — я так догадываюсь, какая-то область видимости). Как заставить делфи генерить такое?

Спасибо всем.

ЗЫ модераторам — может этот вопрос перенести в конференцию делфи? я не уверен просто.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.