【问题标题】:Post Array of String values as request body using curl in Spring MVC在 Spring MVC 中使用 curl 将字符串值数组作为请求正文发布
【发布时间】:2016-07-31 12:38:28
【问题描述】:

无法使用 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"

【问题讨论】:

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


    【解决方案1】:

    找到解决办法:

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

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

    注意:
    1. 控制器方法没有修改
    2. 如果控制器接受 String id 列表作为请求正文,也可以使用相同的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2023-04-04
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 2021-01-13
      相关资源
      最近更新 更多