【发布时间】:2012-12-21 22:24:46
【问题描述】:
我正在使用 JSON 对象处理 Spring MVC。当我试图从 RESTClient 发送 JSON 对象时,我得到了
HTTP 状态 400 - 客户端发送的请求在语法上不正确 ()。
这是我的控制器
ObjectMapper mapper=new ObjectMapper();
@RequestMapping(value = "/addTask", method = RequestMethod.GET)
public ModelAndView addTask(@RequestParam("json") String json) throws JsonParseException, JsonMappingException, IOException
{
System.out.println("Json object from REST : "+json);
Task task=(Task) mapper.readValue(json, Task);
service.addService(task);
return new ModelAndView("Result");
}
我的请求网址:http://localhost:8080/Prime/addTask
我的 Json 对象:
{"taskName":"nothing","taskId":1234,"taskDesc":"nothing doing"}
我也尝试在 RESTClient 中指定“Content-Type: application/json”,但仍然遇到同样的错误
【问题讨论】:
-
我不确定 Spring 是如何工作的,但是如果您的请求方法是
GET,您不应该请求 URL 是http://localhost:8080/Prime/addTask?json=%7B%22taskName%22%3A%22nothing%22%2C%22taskId%22%3A1234%2C%22taskDesc%22%3A%22nothing%20doing%22%7D,并在查询字符串中发送json参数吗? -
我也尝试通过将 json 字符串添加到请求 URL 但仍然显示相同的错误。
-
您可以使用
Fiddler(fiddler2.com/fiddler2/version.asp) 之类的工具来检查请求。也将其发布在问题中,以便其他人可以查看。
标签: json spring rest-client