Как добавить xmlns=MyNamespace в AuthSOAPHeader в gSOAP

Я создаю клиентское приложение для доступа к веб-службе со стороннего сервера.

С этого сервера WSDL:

<s:element name="AuthSOAPHeader" type="tns:AuthSOAPHeader" />
<s:complexType name="AuthSOAPHeader">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="User" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
  </s:sequence>
  <s:anyAttribute />
</s:complexType>

И эти команды:

wsdl2h -k -o svc.h .\svc.asmx.xml
soapcpp2 -i -C .\svc.h

Мое клиентское приложение на основе gSOAP генерирует этот XML:

<SOAP-ENV:Header>
  <ns1:AuthSOAPHeader>
    <User>user</User>
    <Password>password</Password>
  </ns1:AuthSOAPHeader>
</SOAP-ENV:Header>

Но мой сервер отвечает только на:

<SOAP-ENV:Header>
  <ns1:AuthSOAPHeader xmlns="Server.WebServices">
    <User>user</User>
    <Password>password</Password>
  </ns1:AuthSOAPHeader>
</SOAP-ENV:Header>

Я пытаюсь найти способ добавить атрибут xmlns="Server.WebServices" в тег AuthSOAPHeader. Есть ли способ сделать это в gSOAP? Заранее спасибо!


person Knute Knudsen    schedule 26.04.2014    source источник


Ответы (1)


Я, наконец, исправил это, добавив этот флаг в инициализацию мыла:

SOAP_XML_DEFAULTNS
person Knute Knudsen    schedule 26.04.2014