我正在使用邮递员开始在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}}中间件。
有人可以解释问题的原因并提出解决方案吗?
编辑
这是邮递员中的标题:
答案 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
]);
}