在做SOAP接口的时候,经常会遇到服务提供方的web service有header参数的情况,如果是通过PI来配置的话,该如何配置呢。
简单来说,在配置channel的时候,可以使用AF_Modules/AddSOAPHeaderBean函数来进行传参。
场景一,一般参数传输
参数namespace是必输字段,赋值类似http://customheader.com,其它的参数就根据需要自己命名,例如hdr1,值为1234。配置完成后参数就被添加到SOAP Header
结果如下:
<SOAP:Header>
<ns0:hdr1 xmlns:ns0=’http://customheader.com‘>1234</ns0:hdr1>
</SOAP:Header>
如果不起作用,试试将参数Do Not Use SOAP Envelope勾上。
场景二,参数的value是XML结构
生成的请求header如下:
<SOAP:Header>
<ns0:authenticationHdr xmlns:ns0=’http://customheader.com‘>
<UserName>user01</UserName>
<Password>pwd1234</Password>
</ns0:authenticationHdr>
</SOAP:Header>
场景三,参数在配置时不作为明文显示。实现也很简单,在参数的前面加上’pwd.’就可以了。
生成的请求header与场景二一样。
<SOAP:Header>
<ns0:authenticationHdr xmlns:ns0=’http://customheader.com‘>
<UserName>user01</UserName>
<Password>pwd1234</Password>
</ns0:authenticationHdr>
</SOAP:Header>