Дополнительные символы на PHP SOAPClient Запрос XMLPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Дополнительные символы на PHP SOAPClient Запрос XML

Сообщение Anonymous »

Еще одна проблема с php soapclient, я надеюсь, что кто -то сможет показать мне правильный способ сделать это: < /p>
Вот часть массива параметров, чтобы сделать вещи простыми: < /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, а затем преобразовать в массив следующим образом:

Код: Выделить всё

$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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»