Вот часть массива параметров, чтобы сделать вещи простыми: < /p>
Код: Выделить всё
$params = array (
'communication' =>
[
'user-configuration' =>
[
'ruleset' =>
[
'rule' =>
[
'_' => '',
'id' => '999',
'conditions' =>
[
'rule1' => 'true',
],
'actions' =>
[
'forward-to' =>
[
'target' => '123456'
],
],
],
],
],
],
);
< /code>
Я называю SoapClient следующим образом: < /p>
$client = new SoapClient
($wsdl,
array(
'location' => "http://$ip:8080/CAI3G1.2/services/CAI3G1.2",
'uri' => "http://$ip:8080/CAI3G1.2/services/CAI3G1.2",
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_NONE,
'connection_timeout' => 5,
'trace' => 1,
'encoding'=>' UTF-8'
));
$header = new SoapHeader('http://schemas.ericsson.com/cai3g1.2/','SessionId',$sessionID,false);
$client->__setSoapHeaders($header);
try {
$response = $client->Set($params);
} catch(Exception $e){
if ($debug) print_r($e);
return $e;
}
return $response;
< /code>
Сгенерированный XML имеет дополнительную нежелательную часть, выделенную следующим образом: < /p>
999
true
123456
< /code>
Сервер не любит эту дополнительную строку, добавленную в запросе: < /p>
999
< /code>
Если я помесчу один и тот же запрос на Soapui, запрос не содержит этих дополнительных значений, это следующее, что сервер принимает: < /p>
true
123456
Код: Выделить всё
$xml_string= '
true
123456
';
$xml_array = simplexml_load_string($xml_string);
< /code>
, который дает следующее массив: < /p>
[user-configuration] => SimpleXMLElement Object
(
[ruleset] => SimpleXMLElement Object
(
[rule] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 999
)
[conditions] => SimpleXMLElement Object
(
[rule1] => true
)
[actions] => SimpleXMLElement Object
(
[forward-to] => SimpleXMLElement Object
(
[target] => 123456
)
)
)
)
)
Подробнее здесь: https://stackoverflow.com/questions/796 ... equest-xml