Имеется структура запроса:
POST https://хххххх&WSSOAP=1 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "document/http://ххххх:testStatus"
Content-Length: 572
Host: xxxxxx
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="nameSpace">
<soapenv:Header>
<Token xmlns="http://xxxxxx">Login</UsernameToken>
<Password xmlns="http://xxxxxx">Password</PasswordText>
<Session xmlns="http://xxxxxx">Session</SessionType>
</soapenv:Header>
<soapenv:Body>
<ws:testStatus_Input>
<ws:statId>xxxxxx</ws:statId>
</ws:testStatus_Input>
</soapenv:Body>
</soapenv:Envelope>
Требуется с этими данными залогиниться в сервисе.
Подключаю wsdl:
$client = new SoapClient("wsdl.wsdl", Array("exceptions"=>0,"trace" => 1));
Формирую хедер:
$headerbody = array('Token' => 'Login',
'Password' => 'Password');
$header = new SOAPHeader('nameSpace', 'RequestorCredentials', $headerbody);
$client->__setSoapHeaders($header);
Вызываю метод:
$result = $client->testStatus(array("statId"=>"xxxxxx"));
echo $result;
Получаю ошибку:
"SoapFault exception: [SOAP-ENV:Client] Error Code: 10944642 Error Message: Error: Inbound SOAP Message - Session Token is missing or invalid or has expired in /var/www/хххх:15 Stack trace: #0 /var/www/хххххх(15): SoapClient->__call('testStatus', Array) #1 /var/www/xxxxx(15): SoapClient->testStatus(Array) #2 {main}".
Не могу понять, проблема в том, что не получается залогиниться? Ведь токен и пароль верные, или как-то не правильно обращаюсь к сервису?