Java Spring MVC - 发送JSON请求正文错误

时间:2015-08-24 08:10:56

标签: java json spring

我正在尝试将JSON字符串作为请求发送到我的应用程序。这是我的代码:

@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);
}

我正在尝试向Postman发送请求。我使用的方法是POST,标题包含:Accept&#34; application / json&#34;,Content-Type&#34; application / json&#34;,请求正文如下:

{
    "hdfsLocation" : "hdfs://145.160.10.10:8020"
}

这是我得到的回应。如果我将参数放在URL中,它就可以工作。

{
  "httpStatus": 500,
  "appErrorId": 0,
  "message": "Required String parameter 'hdfsLocation' is not present",
  "trackingId": "8c6d45fd-2da5-47ea-a213-3d4ea5764681"
}

知道我做错了吗?

谢谢, 谢尔班

2 个答案:

答案 0 :(得分:1)

不应该是@RequestBody而不是@RequestParam吗? 此外,即使在使用@RequestBody之后,整个JSON字符串: { "hdfsLocation" : "hdfs://145.160.10.10:8020" } 将是String hdfsLocation的值,而不仅仅是hdfs网址的值。因此,您必须自己解析JSON以获取hdfs url。

答案 1 :(得分:1)

您似乎已将@RequestBody@RequestParam混淆了。请执行以下任一操作:

我猜你看过了。)