Я должен поговорить с удаленным удаленным SoapServer, который имеет строковое поле MessageXML
где я должен положить в неэкранированный XML, который инкапсулирован в CDATA.
Я пытаюсь использовать PHP по умолчанию \SoapClient
,
мой $payload
выглядит так:
<![CDATA[<DepartureDate>01/12/2015-01/12/2016</DepartureDate>]]>
Тем не менее, при запросе сервиса Soap через:
$client->ThatMethod(['MessageXML' => $payload];
Я вижу, что фактический ответ избегается в процессе через:
$lastRequest = $client->__getLastRequest();
string (1055) "<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/SOAP_SERVICE"><SOAP-ENV:Body><ns1:ThatMethod><ns1:MessageXML><![CDATA[<DepartureDate>01/12/2015-01/12/2016</DepartureDate>]]></ns1:MessageXML></ns1:SearchBySea></SOAP-ENV:Body></SOAP-ENV:Envelope>"
Я понимаю, что это ожидаемое поведение, но кажется, что Soap remote не может обрабатывать экранированные данные. Вот почему я не хочу избегать полезной нагрузки.
Как установить параметр, который принимает необработанные данные?
Задача ещё не решена.
Других решений пока нет …