Добрый день!
Столкнулся с проблемой составления запроса через делфовые средства.
Вот рабочий запрос (полученный сниффером, генерился из 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: — я так догадываюсь, какая-то область видимости). Как заставить делфи генерить такое?
Спасибо всем.
ЗЫ модераторам — может этот вопрос перенести в конференцию делфи? я не уверен просто.