【发布时间】:2011-08-09 05:27:36
【问题描述】:
我的问题与此类似。 How To Pass Soap Header When WSDL Doesn't Define It? 但不一样。
对于我使用的 Web 服务,所有方法都需要在 SOAP 标头内以明文形式发送的身份验证。但是,我的 WSDL 不包含任何soap 标头信息。我有一个自定义平台工具,我必须使用它从 WSDL 生成代码。由于标头信息不可用,我无法直接使用生成的类 - 我不想手动修改代码以适应标头。
我尝试在 WSDL 中指定 SOAP 标头,但未能获得正确的名称空间。 WSDL 在这里https://stage.totalcheck.sensis.com.au/service/webservice?wsdl,SOAP 头如下:
<soapenv:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password>password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
有人可以帮助我吗?谢谢!
【问题讨论】:
-
wsse看起来像通常用于 WS-Security 的前缀。此外,由于 SOAP 服务是自描述的,我无法找到 WSDL 中未定义的标头的正当理由。 -
这很好。但就像我说的,我不想接触自动生成的类。我只是为了生成类而修改它。
-
自动生成的类是部分类。也许您可以将标题添加到另一个类部分。再次生成自动生成的文件时不会改变。
标签: soap wsdl soapheader