【问题标题】:Java Spring MVC - Send JSON request body errorJava Spring MVC - 发送 JSON 请求正文错误
【发布时间】:2015-11-17 14:03:10
【问题描述】:

我正在尝试将 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 "application/json",Content-Type "application/json",请求体如下:

{
    "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"
}

知道我做错了什么吗?

谢谢, 塞尔维亚

【问题讨论】:

  • 尝试更改您的退货类型
  • 能不能去掉content-type试试

标签: java json spring


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    我猜你看过了:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-30
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 2016-05-24
      相关资源
      最近更新 更多