Есть ли способ вставить "wsmp:" в запрос метода мыла в C #? - PullRequest
0 голосов
/ 23 декабря 2011

Мне нужно создать веб-клиент c #, который может использовать существующий веб-сервис java weblogic, использующий безопасность wsse. Изменение существующего веб-сервиса Java WebLogic для работы с C # не вариант. Я надеюсь, что решение легко найти.

Для клиента я использую c # с Microsoft.Web.Services3 в VisualStudio 2010. Я знаю, что Web.Services3 устарел, но я не могу найти решение WCF, которое работает, где я могу добавить необходимое wsse теги и в порядке, требуемом веб-сервисом.

Используя Web.Service3, сгенерированный запрос мыла не включает необходимые теги атрибута мыла в теле мыла. При использовании soapUI для тестирования единственное различие между рабочим и нерабочим запросом заключается в отсутствующем теге «wsmp:» в теле мыла. Если я смогу найти способ вставить «wsmp:» в тег метода мыльного тела, запрос c # будет работать.

В теле мыла отсутствует тэг заголовка мыла, заданный веб-сервисом "wsmp:". Есть ли способ вставить этот тег в запрос клиента в C #?

Это тело, которое нужно -

`<soapenv:Body>
<wsmp:getForm xmlns:wsmp="http://www.microstrat.com/wsmpServices/1.0">
<wsmp:documentid><documentid>8502</documentid><formnumpacketid /></wsmp:documentid>
</wsmp:getForm>
</soapenv:Body>`

Это сгенерированное тело - обратите внимание на getForm вместо wsmp: getForm tag:

`<soapenv:Body>
<getForm xmlns="http://www.microstrat.com/wsmpServices/1.0">
<documentid xmlns=""><documentid>8502</documentid><formnumpacketid /></documentid>
</getForm>
</soapenv:Body>`

Любая помощь или указатели о том, как перейти от того, что генерируется к тому, что необходимо?

1 Ответ

0 голосов
/ 23 декабря 2011

Похоже, что xml, сгенерированный на C # end, действительно действителен, поэтому я полагаю, что это особенность Java-сервера, который навязывает вам это требование.

Я не знаю внутренностей библиотеки WSEдостаточно, чтобы заставить библиотеку использовать определенный префикс пространства имен xml, но вот один из подходов, который я успешно использовал для перезаписи xml-файлов SOAP способом, который я считаю нужным: Изменение запросов SOAP с помощью GetWebRequest

Ура, Анаш

...