我正在开发一个REST后端,我需要将错误信息(消息以及自定义应用程序密钥和代码)作为JSON发送回前端。
我不确定是否将msg
参数中的JSON包含在sendError
方法中(来自HttpServletResponse
),如下所示:
void sendError(int sc,
java.lang.String msg)
throws java.io.IOException
...或使用响应的实际有效负载,如下所示:
response.getWriter().write(json);
任何人都可以告知哪种方法最好?
答案 0 :(得分:2)
sendError
会将内容类型设置为"text/html"
,因此不适合将自定义json错误消息推送到客户端。
您最好自行设置状态代码
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
然后使用编写器编写所需的JSON字符串。
这显然是非常低级的。如果您正在使用某种REST框架,它通常可以很好地支持自动将转换异常转换为JSON格式。这样你只需要抛出异常,框架将完成剩下的工作。