在Spring MVC中使用curl将String值的数组作为请求主体发布

时间:2016-04-10 13:16:25

标签: json spring-mvc curl spring-boot spring-4

无法使用curl将字符串ID数组发布到Spring mvc控制器,因为它会导致400状态。

控制器方法:

@RequestMapping(value="/evidencesbyIds",method = RequestMethod.POST)  
@ResponseBody  
public Map<String, Object> getEvidenceByIds(@RequestBody String[] ids){
// body here
} 

CURL命令:

curl  -H "Content-type: application/json"   -X POST -d '{"ids":["1","2"]}' http://localhost:8080/vt/evidencesbyIds 

curl  -H "Content-type: application/json"   -X POST -d "{"ids":["1","2"]}" http://localhost:8080/vt/evidencesbyIds  

curl  -H "Content-type: application/json"   -X POST -d "{"ids":[\"1\",\"2\"]}" http://localhost:8080/vt/evidencesbyIds  

curl  -H "Content-type: application/json"   -X POST -d "{\"ids\":[\"1\",\"2\"]}" http://localhost:8080/vt/evidencesbyIds  

我多次尝试执行curl命令,但是它们将状态设置为400,将异常设置为

"Can not deserialize instance of java.lang.String[] out of START_OBJECT token\n at"

1 个答案:

答案 0 :(得分:2)

得到解决方案:

CURL命令在请求正文中发布字符串数组:

卷曲-H“内容类型:application / json”-X POST -d“[”1“,”2“]”http://localhost:8080/vt/evidencesbyIds

注意:
1.控制器方法无修改 2.如果控制器接受字符串ID列表作为请求主体,则可以使用相同的内容。