Как увидеть фактический XML, сгенерированный клиентским классом PHP SOAP?

Рассмотрим этот пример клиента SOAP script:

$SOAP = new SoapClient($WDSL); // Create a SOAP Client from a WSDL

// Build an array of data to send in the request.
$Data = array('Something'=>'Some String','SomeNumber'=>22); 

$Response = $SOAP->DoRemoteFunction($Data); // Send the request.

В последней строке PHP берет аргументы из указанного вами массива и, используя WSDL, создает XML-запрос для отправки, а затем отправляет его.

Как я могу заставить PHP показать мне фактический XML, который он построен?

Я ищу неполадки в приложении, и мне нужно увидеть фактический XML запроса.

52
задан shamittomar 25 August 2010 в 19:14
поделиться

2 ответа

Необходимо включить трассировку когда вы создаете свой SoapClient. Вот так:

$SOAP = new SoapClient($WSDL, array('trace' => true));

$Data = array('Something'=>'Some String','SomeNumber'=>22); 

Затем вызовите метод __getLastRequest после того, как вы сделали вызов службы для просмотра XML.

$Response = $SOAP->DoRemoteFunction($Data);
echo $SOAP->__getLastRequest();

Будет выведен XML-запрос.

Дополнительная информация: http://www.php.net/manual/en/soapclient.getlastrequest.php

6
ответ дан 7 November 2019 в 09:03
поделиться

если вы запускаете клиент локально, Fiddler — отличный способ просмотра сообщений в сети, не зависящий от реализации.

Если вы запускаете его удаленно, вы можете использовать что-то вроде Apache TCPMON Standalone или через eclipse*

*просто связываясь с первым попаданием из Google

3
ответ дан 7 November 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: