【发布时间】:2021-05-17 08:54:15
【问题描述】:
这是我的控制器:
@PostMapping(value = "/endpoint", produces = { APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE})
@ResponseBody
public Result generateResult(@Valid @RequestBody Request request) throws JsonProcessingException {
Result result = new Result();
// some code here
return result;
}
这是我的请求类:
@Data
@NoArgsConstructor
public class Request {
@NotNull
private String name;
private String type = "application/json";
}
控制器根据客户端发送的请求中的Accept 标头生成正确的输出。但是,我不想发送 Accept 标头,只发送以下请求:
{
"name": "my name",
"type": "application/xml"
}
然后根据type 输出正确的格式。我尝试将HttpServletResponse response添加到控制器方法的参数列表中,然后像这样设置内容类型:
response.setHeader(CONTENT_TYPE, request.geType());
但它总是返回 json。知道我还应该做什么吗?
【问题讨论】:
标签: java json xml spring-boot