Перехват и анализ ответов от Zend_Rest_Server - PullRequest
0 голосов
/ 09 марта 2012

Я использовал Zend Framework 1.11 для создания веб-службы REST в PHP с использованием класса Zend_Rest_server, но не смог перехватить и проанализировать ответы от экземпляров Zend_Rest_server до того, как они будут отправлены клиентам.

КомуСоздайте веб-сервис REST. Я использую этот фрагмент кода:

$server = new Zend_Rest_Server();
$server->setClass('Ws_dummy', 'dummy');
$server->handle();

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

Заранее благодарю за любую помощь, которую вы можете предоставить.

PS Например, в веб-сервисах SOAP я могу сделать следующее:

$server->setReturnResponse(true);
$response = $server->handle();

или

$server->handle();
$response = $server->getLastResponse();

и проанализируйте ответы

1 Ответ

0 голосов
/ 09 марта 2012

Вы можете регистрировать запросы следующим образом:

$writer = new Zend_Log_Writer_Stream('/path/to/logfile');
$logger = new Zend_Log($writer);
$logger->info( Zend_Debug::dump( $_REQUEST, 'Request-Dump', false );

Это необходимо сделать до того, как Rest_Server обработает запрос.Если у вас есть дополнительные вопросы - просто спросите: -)


Редактировать (добавил полезную информацию):

Может быть полезно понять, что метод Zend_Debug :: dump () оборачиваетPHP функция var_dump ().Если выходной поток обнаружен как веб-презентация, вывод var_dump () экранируется с помощью htmlspecialchars () и оборачивается предварительными тегами (X) HTML.


Редактировать # 2:

Вы можете вернуть Ответ Zend_Rest_Server с помощью:

$server->returnResponse(true);

перед $ server-> handle ().


Edit # 3:

Beв курсе: если я все правильно прочитал, вам нужно отправить заголовки самостоятельно, если вы возвращаете ответ.Вы можете получить / + установить заголовки с помощью:

$headers = $server->getHeaders();
foreach( $headers as $header ) header( $header );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...