Laravel没有从邮递员那里获取数据

时间:2020-10-05 11:24:58

标签: laravel postman

我正在使用邮递员开始在Laravel中开发API。但是,无论我通过邮递员发送什么,收到的$ request都是空的。

在Laravel路线:

Route::group(['namespace' => 'Api', 'as' => 'api.'], function() {
    Route::post('/stock-list', 'DataController@stock_list');
});

控制器方法:

public function stock_list(Request $request)
{
    logger()->info($request->all());
    return response()->json([
        'request' => $request
    ]);
}

日志显示$request->all()是一个空数组。由于我也将$ request返回给Postman进行测试,因此,这是Postman的回应:

{
    "request": {
        "attributes": {},
        "request": {},
        "query": {},
        "server": {},
        "files": {},
        "cookies": {},
        "headers": {}
    }
}

我要发送什么?在邮递员中,我的正文标签中包含以下内容:

{
    'foo' : 'bar'
}

主体类型被选择为raw,邮递员将其读取为JSON

在身份验证方面,我现在选择了具有用户名和密码的basic auth,但是在Laravel方面,我还没有做任何事情(从路由和控制器中可以看到)。据我所知,此刻无关紧要-Laravel仍应正确接收请求,然后应返回“未经身份验证”的响应,或者由于没有{{ 1}}中间件。

有人可以解释问题的原因并提出解决方案吗?

编辑

这是邮递员中的标题:

enter image description here

2 个答案:

答案 0 :(得分:1)

{
    'foo' : 'bar'
}

不是有效的JSON。按照标准,您必须使用双引号。

{
    "foo" : "bar"
}

您已经将content-type设置为json了。我相信它现在应该可以正常工作。

答案 1 :(得分:0)

我不明白您为什么使用logger()-> info($ request-> all());在您的代码中,但我尝试了下面的代码,并且成功了

路线:

Route::group(['prefix' => 'Api'], function() {
Route::post('stock-list', 'Api\UsersControllers@stock_list');
});

控制器:

 public function stock_list(Request $request)
{
    $request=$request->all();
    return response()->json([
        'request' => $request
    ]);
}

邮递员: enter image description here