如何添加xmlns =" MyNamespace"到gSOAP中的AuthSOAPHeader

时间:2014-04-26 07:30:05

标签: gsoap

构建客户端应用程序以从第三方服务器访问Web服务。

从这个服务器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 =&#34; Server.WebServices&#34; 属性添加到 AuthSOAPHeader 标记。有没有办法在gSOAP中这样做?提前谢谢!

1 个答案:

答案 0 :(得分:1)

我最后通过将此标志添加到soap初始化来修复此问题:

SOAP_XML_DEFAULTNS