Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用post获取应用程序/json参数_Json_Slim - Fatal编程技术网

使用post获取应用程序/json参数

使用post获取应用程序/json参数,json,slim,Json,Slim,我正在使用登录。 它发送标题内容类型为application/json的请求(主体为json ex:{login:login,password:pass}) 在服务器端,我使用Slim框架。 为了检索发送的值,我通过身体获取它 $app = new \Slim\Slim(); $app->add(new \Slim\Middleware\ContentTypes()); $app->post('/auth/login', function () use ($app) { $

我正在使用登录。 它发送标题内容类型为application/json的请求(主体为json ex:{login:login,password:pass})

在服务器端,我使用Slim框架。 为了检索发送的值,我通过身体获取它

$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());

$app->post('/auth/login', function () use ($app) {
    $params = $app->request()->getBody();
    print_r($params);//I've got it
});
我能通过邮局找到那些情人吗

if ($app->request()->isPost()) {
        $email = $app->request->post('email');
        $password = $app->request->post('password');
}

$\u POST
用于表单数据。正如您所注意到的,您可以在请求体中找到JSON

$app->post('/auth/login', function () use ($app) {
    $params = $app->request->getBody();
    print_r(json_decode($params, true));
});

我不知道这是否是Slim内置的,但我使用自己的中间件使其工作

class MyMiddleware extends \Slim\Middleware {
  function call() {
    $body = $this->app->request->getBody();
    if (is_array($body))
      $this->app->environment()['slim.request.form_hash'] = $body;
    $this->next->call();
  }
}
这应该添加到
ContentTypes
中间件之前,以确保正确的顺序

$app->add(new MyMiddleware());
$app->add(new \Slim\Middleware\ContentTypes());