rest - 如何在 Zend Framework 2 中发送 PUT 请求?

标签 rest zend-framework2

我正在尝试了解如何在 PUT 请求中发送参数。我有一个运行良好的 javascript 接口(interface),所以我知道服务器端可以正常工作,但我的单元测试从未正确发送 PUT 参数。这是我尝试过的:

$this->request->getQuery()->set("id", $id);
$params = array(
        'attribute' => 'email',
        'email' => 'new_email@email.com',
);
// Set the data to be validated
$this->request->setMethod('PUT');

// Send the additional parameters
$this->request->setContent(json_encode($params));

这个错误是因为服务器正在寻找 $params 键“属性”,但是服务器上的 $params 数组是空的——没有传入任何 $params。当我尝试时也是如此

foreach ($params as $n => $v) {
    $this->routeMatch->setParam($n, $v);
}

foreach ($params as $n => $v) {
    $this->request->getQuery()->set($n, $v);
}

foreach ($params as $n => $v) {
    $this->request->getPost()->set($n, $v);
}

在 zf2 中发送 PUT 参数的正确方法是什么?

最佳答案

解决方案是将Content-Type header 设置为application/json。然后

$this->request->setContent(json_encode($params));

有效。唯一的问题是它破坏了我所有使用 getPost()->set($n,$v) 的 POST 请求。我不得不返回到每个测试并对它们执行相同的 setContent,然后它们也通过了。

关于rest - 如何在 Zend Framework 2 中发送 PUT 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325060/

相关文章:

php - 在 Zend Framework 2 中使用 ZendPdf

ios - 在 Swift 中使用 PATCH 的带有 Body 的 HTTP 请求

javascript - Parse.com 创建具有关系的对象

eclipse - 如何使用 IP 和端口访问 JBOSS Restful Web 服务

php - 实体内部的 DDD 和 Doctrine 映射

php - 敏捷性 : ApiProblem alternative?

python - Flask路由查询参数

javascript - REST 连接/资源检索混合。使用哪个 Controller ?

php - 从 Zend framework 2 开始,找不到类错误

mysql - Zend Framework 2 表网关使查询速度变慢