Spring MVC-客户端发送的请求在语法上不正确

时间:2018-09-16 14:27:33

标签: java spring spring-mvc spring-boot

我有一个简单的控制器:

@RequestMapping(method = { RequestMethod.POST })
public ResponseEntity<MyResponse> print(@RequestBody final RequestModel request) throw ApiException {
    return null;
}

在我的RequestModel中:

class RequestModel {
    private String name;
    private CustomData data;
}

CustomData:

class CustomData {
    private String data;
}

当我在不带“数据”字段的情况下发出POST请求时,它可以工作。但是,如果我添加“数据”字段,则会得到400,则客户端发送的请求在语法上是不正确的。

2 个答案:

答案 0 :(得分:0)

O不知道是否编写了所有代码,但是tou应该实现可序列化并编写setter和getter。

但是,回答您的问题时,您应该使用@JsonProperty注释字段以指定所需的标志。

答案 1 :(得分:0)

您发布的JSON应该是这样的:

{
   "name":"Luke",
   "data": {
         "data":"I am your father"
    }
}

OBS:如果您使用的是Postman,请设置标题:key:内容类型,值:application / json

您应指定一个端点: 示例:

@PostMapping("/data")

代替

@RequestMapping(method = { RequestMethod.POST })

如果您使用的是默认端口,请重试以下帖子:

http://localhost:8080/data

OBS:RequestModel和CustomerData必须具有getter和setter。