我有一个简单的控制器:
@RequestMapping(method = { RequestMethod.POST })
public ResponseEntity<MyResponse> print(@RequestBody final RequestModel request) throw ApiException {
return null;
}
在我的请求模型中:
class RequestModel {
private String name;
private CustomData data;
}
自定义数据:
class CustomData {
private String data;
}
当我在没有"数据"字段的情况下发出 POST 请求时,它可以工作。但是如果我添加"数据"字段,我会得到 400,客户端发送的请求在语法上不正确。
不知道 如果你写了所有代码,但 tou 应该实现可序列化并编写 setter 和 getter。
但是,在回答您的问题时,您应该用@JsonProperty注释您的字段以指定所需的标志。
你发布的JSON应该是这样的:
{
"name":"Luke",
"data": {
"data":"I am your father"
}
}
OBS:如果您使用的是邮递员,请设置标题:键:内容类型,值:应用程序/json
应指定终结点: 例:
@PostMapping("/data")
而不是
@RequestMapping(method = { RequestMethod.POST })
如果您使用的是默认端口,请重试发布到 :
http://localhost:8080/data
OBS:请求模型和客户数据必须有getter和setter。