我正在开发一个移动的应用程序,在后端使用flutter和laravel,我做了一个API来添加新记录,当我用Thunder客户端测试api时,它工作得很好,但是当我从flutter调用它时,我得到了null响应。
this is how the error looks lik
final _messengerState = scaffoldKey.currentState; // this variable is for the snackbar
scanParticipant() async {
Map data = {
'event': 1,
'participant': 11,
'recorder': 6,
};
print(data);
Response response = await _crud.postRequest(addParticipantRoute, data);
...
}
postRequest(String url, Map data) async {
try {
var response = await http.post(Uri.parse(url),
headers: {"Accept": "application/json"}, body: data);
return response;
} catch (e) {
print('Error catch $e');
}
}
和后端
public function addRecord(Request $request)
{
$fields = $request->validate([
'event' => 'required|integer',
'participant' => 'required|integer',
'recorder' => 'required|integer'
]);
$user = Record::where('event',$fields['event'])->where('participant',$fields['participant'])->first();
if($user == null)
{
Record::create([
'event' => $fields['event'],
'participant' => $fields['participant'],
'recorder' => $fields['recorder'],
'moment' => Carbon::now()->addHour(),
]);
return response([
'message' => 'success',
],201);
}else {
return response([
'message' => 'already scanned'
],422);
}
}
注意:我在尝试此功能之前登录
1条答案
按热度按时间63lcw9qa1#
我后来解决了这个问题。问题出在数据变量上,我应该把所有的字段转换成字符串,然后发送它。