Laravel API不接受来自邮递员的JSON请求

时间:2020-09-02 13:25:54

标签: laravel api laravel-5 eloquent postman

Laravel API不接受JSON请求。如果我请求作为表单数据,它可以工作,但是如果我将JSON对象发布在邮递员的正文中,则它不会接收请求数据。

路线:

$router->group(['prefix' => 'imp'], function () use ($router) {
    $router->group(['prefix' => 'lead'], function () use ($router) {
        $router->post('/jardy', 'FeedController@jardy');
    });
});

控制器:

 public function jardy(Request $request)
    {

        $this->validate($request, [
            'api_key' => 'required',
        ]);
        $api_key = $request->input('api_key');
        return $api_key;
}

JSON请求:

Postman request using JSON

表单数据请求:

Postman request using Form data

为什么在JSONcontent-typeapplication/jsonAccept:*/*的情况下不起作用

2 个答案:

答案 0 :(得分:1)

您必须添加标题

接受:application / json

然后laravel将您的RAW json解析为输入变量,可以通过-> input()来访问它们

请参阅: enter image description here

使用邮递员默认设置的 / 无效。 如果您不想中继标题,也可以执行$request->json(),但我想,您只想传递标题。

请参阅处理此问题的源代码: https://github.com/laravel/framework/blob/7.x/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php#L52

https://github.com/laravel/framework/blob/7.x/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php#L32

答案 1 :(得分:1)

不允许在JSON中添加评论。 正文->原始-> json

字段中存在一个错误