Yii2 rest api getBodyParams()无法从PUT请求中获取参数

时间:2017-01-04 21:24:42

标签: php rest api yii2 put

如何从PUT请求中获取“令牌”参数?

控制器:

public function actionUpdate()
{
    $params = Yii::$app->getRequest()->getBodyParams();
    return $params;
}

请求:

curl -X PUT -H "Authorization: Bearer LL_nACyYVJFJyuHJxcOtiXu3OVNBJ_xo" -F "token=12345" "http://localhost/api/v1/devices/1"

响应:

{"success":true,"data":{"--------------------------580af3364bd175a7\r\nContent-Disposition:_form-data;_name":"\"token\"\r\n\r\n12345\r\n--------------------------580af3364bd175a7--\r\n"}}r

我试过这个:

return $params['token'];

PHP注意:未定义索引:标记

这个

parse_str(file_get_contents("php://input"), $params);

将返回相同的结果

1 个答案:

答案 0 :(得分:2)

我认为问题与您的请求的内容类型有关。 从put / post获取身体参数需要Content-type: application/x-www-form-urlencoded

尝试使用curl与-d代替-F

curl -X PUT -H "Authorization: Bearer LL_nACyYVJFJyuHJxcOtiXu3OVNBJ_xo" -d "token=12345" "http://localhost/api/v1/devices/1"