我使用Zend Framework 1.11使用Zend_Rest_server类在PHP中创建REST Web服务,但是在将这些响应发送到客户端之前,我无法拦截和分析来自Zend_Rest_server实例的响应。
要制作REST Web服务,我使用以下代码片段:
$server = new Zend_Rest_Server();
$server->setClass('Ws_dummy', 'dummy');
$server->handle();
是否有记录回复的方法,因为我需要对其进行分析,而且我无法找到解决此需求的方法。
提前感谢您提供的任何帮助。
P.S。例如,在SOAP Web服务中,我可以这样做:
$server->setReturnResponse(true);
$response = $server->handle();
或
$server->handle();
$response = $server->getLastResponse();
并分析回复
答案 0 :(得分:0)
您可以像这样记录请求:
$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()可能会有所帮助。如果输出流被检测为Web演示文稿,则var_dump()的输出将使用htmlspecialchars()进行转义,并使用(X)HTML预标记进行包装。
编辑#2:
您可以使用以下命令返回Zend_Rest_Server的响应:
$server->returnResponse(true);
在$ server-> handle()之前。
编辑#3:
请注意: 如果我已经阅读了所有内容,如果您要返回响应,则需要自己发送标题。 您可以使用以下方式获取/ +设置标题:
$headers = $server->getHeaders();
foreach( $headers as $header ) header( $header );