Приветствую! такая задача, нужно сгененировать такой xml запрос
Код | <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <AuthMember xmlns="http://tempuri.org/"> <somefield>string</somefield> </AuthMember> </soap:Header> <soap:Body> <AuthenticateMember xmlns="http://tempuri.org/" /> </soap:Body> </soap:Envelope>
|
я делаю так:
Код | class SoapHeaderAuthMember {
public $somefield;
public function __construct($somefield) {
$this->somefield = $somefield;
} }
$client = new SoapClient( 'https://www.somepage.com/service.asmx?WSDL', array("exceptions"=>0, "trace" => 1 ) ); $authMember = new SoapHeaderAuthMember('somefieldvalue');
$soapHeaders[] = new SoapHeader('http://schemas.xmlsoap.org/ws/2002/07/utility', 'AuthMember', $authMember); $client->__setSoapHeaders($soapHeaders);
$client->__soapCall('AuthenticateMember',array());
|
получаю на выходе:
Код | <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/" xmlns:ns2="http://schemas.xmlsoap.org/ws/2002/07/utility"> <SOAP-ENV:Header> <ns2:AuthMember> <somefield>somefieldvalue</somefield> </ns2:AuthMember> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:AuthenticateMember/> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
|
как видите: 1. генерирует SOAP-ENV:Envelope вместо SOAP-ENV:Envelope
2. в хедере: сгеренировало ns2:AuthMember вместо AuthMember
3.в body ns1:AuthenticateMember вместо AuthenticateMember xmlns="http://tempuri.org/"
Как можно это все исправить ? читал доку по php soapclient нужных опций не нашел как это сделать, помогите плз.
|