通过邮递员传递日期

问题描述

这是我的控制者:

@GetMapping("/checkMeetingRoomAvailability")
public @ResponseBody ResponseDto checkMeetingRoomAvailability(@DateTimeFormat(pattern = "dd-M-yyyy hh:mm:ss") Date begin,@DateTimeFormat(pattern = "dd-M-yyyy hh:mm:ss") Date end,@RequestParam Integer capacity) {
    return meetingRoomServiceLocal.checkMeetingRoomAvailability(begin,end,capacity);
}

当我使用邮递员传递输入时,它给出了400个错误的请求。

meetingRoomController/checkMeetingRoomAvailability?begin=30-9-2020 14:30:00&end=30-9-2020 15:30:00&capacity=10

我无法弄清楚为什么出现此错误

解决方法

以下任何一种解决方案都可以使用:

  1. 推荐的解决方案:在代码中将LineItem.findAll({ attributes: ['orderId',[fn('sum',col('quantity')),'quantity']],include: [ { model: Order,as: 'lineItems',},],group: ['orderId'],raw: true,}); 替换为dd-M-yyyy hh:mm:ss,然后可以像dd-M-yyyy'T'hh:mm:ss一样对其进行测试。
  2. 对URL进行编码,以便可以对日期和时间之间的空格进行适当的编码,例如作为测试,您可以使用某些编码工具对meetingRoomController/checkMeetingRoomAvailability?begin=30-9-2020T14:30:00&end=30-9-2020T15:30:00&capacity=10进行编码,例如https://www.urlencoder.org/并使用Postman中的编码URL。我不建议这样做,因为这将迫使您的客户端在向服务器发送请求之前将其编码为URL。