使用HttpServletResponse将错误作为JSON发送到前端

时间:2015-09-09 12:22:06

标签: json rest spring-mvc servlets

我正在开发一个REST后端,我需要将错误信息(消息以及自定义应用程序密钥和代码)作为JSON发送回前端。

我不确定是否将msg参数中的JSON包含在sendError方法中(来自HttpServletResponse),如下所示:

void sendError(int sc,
               java.lang.String msg)
               throws java.io.IOException

...或使用响应的实际有效负载,如下所示:

response.getWriter().write(json);

任何人都可以告知哪种方法最好?

1 个答案:

答案 0 :(得分:2)

sendError会将内容类型设置为"text/html",因此不适合将自定义json错误消息推送到客户端。

您最好自行设置状态代码

response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

然后使用编写器编写所需的JSON字符串。

这显然是非常低级的。如果您正在使用某种REST框架,它通常可以很好地支持自动将转换异常转换为JSON格式。这样你只需要抛出异常,框架将完成剩下的工作。