Получить SOAP XML прежде __ soapCall?

Действительно ли возможно генерировать XML Клиентом SOAP прежде, чем отправить его в веб-сервис?

Мне нужно это, потому что ответ от веб-сервиса, если один из параметров является действительно неправильным, что я получаю ошибки как

Server was unable to read request. 
---> There is an error in XML document (2, 408). 
---> Input string was not in a correct format.

Это обычно включает разжигающий tcpmon или некоторую другую tcp утилиту наблюдателя, получая вызов веб-сервиса, копию и вставку xml к текстовому редактору, и перейдите к столбцу 408 для наблюдения то, что является проблемой.

Я действительно хотел бы упростить этот процесс путем получения XML прежде, чем отправить его.

5
задан Vnuk 7 January 2010 в 10:11
поделиться

1 ответ

Это очень, очень сложно (почти невозможно) сделать. Намного проще использовать встроенные функции отладки класса SoapClient для вывода запроса после его отправки. Вы можете сделать это следующим образом:

Во-первых, при создании SOAPClient включите трассировку, например:

$client = new SoapClient($wsdl, array('trace' => true));

Затем выполните необходимую обработку, чтобы подготовиться к вызову SOAP и сделать его. Как только это будет сделано, вы получите запрос, который вы только что отправили:

echo("<pre>"); //to format it legibly on your screen
var_dump($client->__getLastRequestHeaders()); //the headers of your last request
var_dump($client->__getLastRequest()); //your last request

И, если вы также хотите увидеть ответ, должно работать следующее:

var_dump($client->__getLastResponseHeaders()); //response headers
var_dump($client->__getLastResponse()); //the response
12
ответ дан 13 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

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