SoapClient WSDL SOAP Header

xInOrK

Новичок
$ php -v
PHP 5.4.17-1~dotdeb.1 (cli) (built: Jul 6 2013 16:17:13)

Имеется такой веб сервис (его описание-код снизу) http://pastebin.com/Vd6Zhapy
Не могу понять как мне построить правильный Header запрос и чтобы он прописывал правильные неймспейсы, код который мне выдаёт запрос где есть только Body и в нём у тега <ns1:atesAndur> не правильное имя неймспейса:

PHP:
try {
  $client = new SoapClient("pais.wsdl", array(
  "trace" => 1,
  "exceptions" => 1,
  "soap_version" => SOAP_1_1,
  "style" => SOAP_DOCUMENT,
  "use" => SOAP_LITERAL,
  "location" => "http://10.153.17.17/cgi-bin/consumer_proxy",
  ));
} catch (Exception $e) {
  print_r($e);
}
var_dump($client->__soapCall("atesAndur", array("atesAndur" => array("request" => array("systId" => 777, "termId" => 10001, "loopId" => 1)))));

// header => array("service" => "pais.atesAndur.v1", "id" => ".....", "userId" => "......", "producer" => "pais", "consumer" => ".....")
 

MiksIr

miksir@home:~$
Вот у меня ощущение что SoapClient очень плохо работает с document wrapped стилем. Возомжно из-за этого проблема.
Самый быстрый способ - переопределить __doRequest и там банально зареплейсить.
 

xInOrK

Новичок
Ясно, а как быть с Header если делать через SoapHeader то он параметр название обязательный и он добавляет лишнюю вложенность в моём случае.
 
Сверху