如何使用Spring MVC返回自定义http错误代码?

时间:2016-10-11 11:38:46

标签: java http spring-mvc

我的目的是使用Spring MVC返回自定义http错误代码,例如:601,602 ...以便客户可以清楚地区分错误。

    @ExceptionHandler(Exception.class)
    public @ResponseBody
    ErrorAlmacen generalExceptionHandler(Exception exception, HttpServletResponse response) {
        response.setStatus(601);
        ErrorAlmacen error = new ErrorAlmacen();
        ...
        return error;
    }

但是当我的@ExceptionHandler在respose对象中设置这些值时,Spring会以某种方式转换为200。

是否有可能做我正在尝试的事情,或者Spring不会允许我这样做?

1 个答案:

答案 0 :(得分:0)

您要做的是 可以完成。

HTTP是一种众所周知的协议,无法根据您自己的用途进行重新设计。

协议是“语言”,是双方意识到的规则,现在如何“说话”并相互沟通。

将Web应用程序部署到Web服务器时,该Web服务器可以响应来自客户端的HTTP请求,客户端将是最终用户的浏览器。并且该浏览器期望仅接收200个代码以获得OK响应,并且没有其他HTTP代码用于OK批准。

您的浏览器知道要解决状态200而不是您希望使用的602.

这就是构建浏览器的方式,并且您无法更改协议。