从 ZEND_HTTP_CLIENT 请求的 PUT 或 DELETE 请求中获取参数
Get params from PUT or DELETE request from ZEND_HTTP_CLIENT request
我想从使用 Zend_Http_client 发送的 PUT 或 DELETE 请求中获取参数,如下所示:
$httpClient = new Zend_Http_Client();
$httpClient->setUri("http://mysite/mycontroller/");
$httpClient->setMethod(Zend_Http_Client::PUT);
$data = array("id"=>"1","label"=>"LABEL UPDATE");
$httpClient->setParameterPost($data);
$response = $httpClient->request();
对于 POST 请求,我可以毫无问题地检索参数,但是对于 PUT 或 DELETE,我什么都没有...
任何想法 ?
谢谢
最后我找到了这个解决方案:
在 Zend/Controller/Plugin/ 你可以找到 PutHandler.php 。它可用于使用 $this->getRequest()->param_name 获取 PUT 参数。
将其包含在您的 boostrap.php 文件中:
protected function _initRestRoute()
{
$this->bootstrap('frontController');
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new Zend_Controller_Plugin_PutHandler());
$frontController->registerPlugin(new Zend_Controller_Plugin_DeleteHandler());
$restRoute = new Zend_Rest_Route($frontController);
$frontController->getRouter()->addRoute('default', $restRoute);
}
我扩展了删除参数的 PutHandler.php 脚本并且它有效。
我想从使用 Zend_Http_client 发送的 PUT 或 DELETE 请求中获取参数,如下所示:
$httpClient = new Zend_Http_Client();
$httpClient->setUri("http://mysite/mycontroller/");
$httpClient->setMethod(Zend_Http_Client::PUT);
$data = array("id"=>"1","label"=>"LABEL UPDATE");
$httpClient->setParameterPost($data);
$response = $httpClient->request();
对于 POST 请求,我可以毫无问题地检索参数,但是对于 PUT 或 DELETE,我什么都没有... 任何想法 ? 谢谢
最后我找到了这个解决方案: 在 Zend/Controller/Plugin/ 你可以找到 PutHandler.php 。它可用于使用 $this->getRequest()->param_name 获取 PUT 参数。 将其包含在您的 boostrap.php 文件中:
protected function _initRestRoute()
{
$this->bootstrap('frontController');
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new Zend_Controller_Plugin_PutHandler());
$frontController->registerPlugin(new Zend_Controller_Plugin_DeleteHandler());
$restRoute = new Zend_Rest_Route($frontController);
$frontController->getRouter()->addRoute('default', $restRoute);
}
我扩展了删除参数的 PutHandler.php 脚本并且它有效。