Java Spring MVC-发送JSON请求正文错误
我正试图向我的应用程序发送一个JSON字符串作为请求。这是我的代码:Java Spring MVC-发送JSON请求正文错误,java,json,spring,Java,Json,Spring,我正试图向我的应用程序发送一个JSON字符串作为请求。这是我的代码: @RequestMapping( value = "/mylink/upload", method = RequestMethod.POST, consumes ="application/json", produces = "application/json") public @ResponseBody List<Upload> upload(
@RequestMapping(
value = "/mylink/upload",
method = RequestMethod.POST,
consumes ="application/json",
produces = "application/json")
public
@ResponseBody
List<Upload> upload(
@RequestParam(value = "hdfsLocation") String hdfsLocation
) throws Exception {
return S3HdfsTransfer.uploadFromHDFS(hdfsLocation);
}
这就是我得到的回应。如果我把参数放在URL中,它就会工作
{
"httpStatus": 500,
"appErrorId": 0,
"message": "Required String parameter 'hdfsLocation' is not present",
"trackingId": "8c6d45fd-2da5-47ea-a213-3d4ea5764681"
}
知道我做错了什么吗
谢谢,
塞尔维亚语它不应该是
@RequestBody
而不是@RequestParam
?
此外,即使使用了@RequestBody
,整个JSON字符串:
{
“hdfsLocation”:hdfs://145.160.10.10:8020"
}
将是
字符串hdfsLocation
的值,而不仅仅是hdfs url。因此,您必须自己对该JSON进行JSON解析才能获得hdfs url。看起来您将@RequestBody
与@RequestParam
混淆了。执行以下任一操作:
- 将请求参数作为请求参数(而不是主体)传递。Like,(编码)
- 将
替换为@RequestParam
。如果要发送正文,请不要将其与请求参数一起发送。这是两件不同的事情@RequestBody
我猜你看得太多了:)尝试更改退货类型你能删除内容类型并尝试吗
{
"httpStatus": 500,
"appErrorId": 0,
"message": "Required String parameter 'hdfsLocation' is not present",
"trackingId": "8c6d45fd-2da5-47ea-a213-3d4ea5764681"
}