我尝试使用WS-Security连接到Web服务,但是收到错误消息“安全标头不正确”,这里是SoapHeader:
<soapenv:Header>
<wsse:Security mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken Id="ABC-123">
<wsse:Username>*****</wsse:Username>
<wsse:Password>*****</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
这是连接的Php代码:
<?php
$client = new SoapClient("https://www.weservice.com/service?wsdl");
//Body of the Soap Header.
$headerbody = array("UsernameToken" => array("Username" => "******",
"Password" => "******"));
//Create Soap Header.
$header = new SoapHeader("wsse", "Security", $headerbody);
//set the Headers of Soap Client.
$client->__setSoapHeaders($header);
try{
$result = $client->__soapCall("sendBill", array("fileName" => "filename",
"contentFile" => "byteArray"));
}catch(SoapFault $e){
echo $e;
}
提前致谢。
答案 0 :(得分:0)
我终于以不同的方式解决了这一事件。 使用Php,字节数组中的zip文件无法发送,因为一些罕见的原因(可能是Php对SOAP协议附件的支持不足)。
所以我将语言改为C#,现在我可以测试一个虚拟文件到soap服务,我有一些(已解决的)问题,但我从服务中收到了成功的响应。