构建客户端应用程序以从第三方服务器访问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中这样做?提前谢谢!
答案 0 :(得分:1)
我最后通过将此标志添加到soap初始化来修复此问题:
SOAP_XML_DEFAULTNS