当使用以下curl请求测试我的spring代码时,它会因为http 400错误请求而失败(客户端发送的请求在语法上是不正确的。)
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"ids":[1,2]}' <someurl>
我对应的Spring控制器有一个看起来像这样的方法
@RequestMapping(value = "someurl", method = RequestMethod.POST)
public @ResponseBody List<Result> multiple(@RequestBody List<Integer> ids){
List<Result> list = new ArrayList<>();
for(int id : ids){
// do something with id and add to result list
}
return list;
}
我的网址是正确的,我几乎可以肯定我的卷曲请求也是正确的,所以我不知道我的代码有什么问题,这是我的第一个POST请求,GET都在工作。
编辑: 我正在使用Linux终端
答案 0 :(得分:0)
@RequestBody
只需要一个JSON数组(如果用于注释List
)。你必须做两件事之一:
private List<Integer> ids
字段创建表示POST数据的类型。更改您的控制器方法签名以使用该类型而不是List<Integer>
。将您的JSON POST更改为:
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '[1,2]' <someurl>
任何一种解决方案都应该有效。