从 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 脚本并且它有效。