长话短说:我正在为Zend Framework构建一个骨架应用程序,我到了需要设置api
模块的部分.我正在用Zend_Rest_Controller
这份工作.一切都很好,我需要在控制器中获取HTTP头以验证api密钥.
关于我在网上看到的各种教程,事情是通过前端控制器插件完成的,但是我需要它比那更"即插即用"(每次检查应用程序的配置,决定哪个模块是api等等).
我试过看起来最明显$this->getRequest()->getHeaders()
但似乎不起作用的东西,至少不是我将要发送api密钥的HTTP头文件.reponse
对象都没有.
任何人都可以帮我这个吗?
毕竟我找到了这样做的方法:)
在preDispatch()
控制器中的方法上,您可以执行以下操作:
public function preDispatch() { $request = new Zend_Controller_Request_Http(); $key = $request->getHeader('x-apikey'); }
似乎该Zend_Controller_Request_Http
对象允许您访问标头.有关Zend_Controller_Request_Http
您可以在此处找到的更多信息
正如Bogdan所说,你可以在Zend_Controller_Request_HTTP类中找到这些信息.它可以在控制器本身中找到:
$this -> getFrontController() -> getRequest() -> getHeader('Content-Type');
不幸的是,您无法一次访问所有标头,但ZF所做的只是使用apache_request_headers()函数(如果在服务器上可用)来获取它们.