Я могу получить успешный ответ от wsdl, если я включу WS-Addressing на SOAP UI.Хотите знать, как сделать это с помощью 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>