gpt4 book ai didi

java - 在Spring中,有没有办法为 header 返回不同的Content-Type值?

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:20 25 4
gpt4 key购买 nike

当遇到错误时,我想将 products = text/plain 设置为 products = application/json

@RequestMapping(value = "/v0.1/content/body", method = RequestMethod.GET, produces = "text/plain")
@ResponseBody
public Object getBody(@RequestParam(value = "pageid") final List<String> pageid, @RequestParam(value = "test") final String test) {

if (!UUIDUtil.isValid(pageid)) {
Map map = new HashMap();
map.put("reason", "bad pageId");
map.put("pageId", pageId);
map.put("test", test);

return new ResponseEntity<Object>(map, HttpStatus.BAD_REQUEST);
}

return "hello";
}

此代码的问题是,当我发送无效的 pageId 时,它不会将错误打印为 json。它给了我一个 HTTP 406 错误, Not Acceptable ,因为它期望生成文本/纯文本,但我没有返回字符串。

最佳答案

处理错误的最简洁方法是使用@ExceptionHandler:

@ExceptionHandler(EntityNotFoundException.class) //Made up that exception
@ResponseBody
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public ErrorObject handleException(Exception e) {
return new ErrorObject(e.getMessage());
}

然后假设您已正确配置解析器并将正确的 JSON 序列化库放入类路径中,ErrorObject 的实例将作为 JSON 响应返回给客户端。

当然你可以根据需要设置多个@ExceptionHandler方法。

关于java - 在Spring中,有没有办法为 header 返回不同的Content-Type值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21323005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com