【问题标题】:Sending error as JSON to the front-end using HttpServletResponse使用 HttpServletResponse 将错误作为 JSON 发送到前端
【发布时间】:2015-12-05 10:00:44
【问题描述】:

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

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

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

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

response.getWriter().write(json);

谁能告诉我哪种方法最好?

【问题讨论】:

    标签: json rest spring-mvc servlets


    【解决方案1】:

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

    你最好自己设置状态码

    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    

    然后使用 writer 编写您想要的 JSON 字符串。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2018-11-10
    • 2011-02-24
    • 2013-01-30
    • 2023-03-07
    相关资源
    最近更新 更多