如果我在SOAP UI上启用WS-Addressing,我就能从wsdl获得成功的响应。想知道如何使用PHP实现这一目标。这是我当前的XML请求:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bses="http://bsestarmf.in/">
<soap:Header/>
<soap:Body>
<bses:getPassword>
<!--Optional:-->
<bses:UserId>12345</bses:UserId>
<!--Optional:-->
<bses:Password>somepassword</bses:Password>
<!--Optional:-->
<bses:PassKey>somekey</bses:PassKey>
</bses:getPassword>
</soap:Body>
</soap:Envelope>
这是我的wsdl:http://bsestarmfdemo.bseindia.com/MFOrderEntry/MFOrder.svc?wsdl
我在没有启用WS-Addressing的情况下得到此错误响应:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/fault</a:Action>
</s:Header>
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
<s:Subcode>
<s:Value>a:ActionMismatch</s:Value>
</s:Subcode>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-US">The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://bsestarmf.in/MFOrderEntry/getPassword'.</s:Text>
</s:Reason>
<s:Detail>
<a:ProblemHeaderQName>a:Action</a:ProblemHeaderQName>
</s:Detail>
</s:Fault>
</s:Body>
</s:Envelope>