【问题标题】:HttpStatus code 499 is not available in Spring HttpStatus classHttpStatus 代码 499 在 Spring HttpStatus 类中不可用
【发布时间】:2018-12-09 04:06:52
【问题描述】:

我正在使用 Spring Boot 开发一个 REST API。 我的要求是“用户启动进程,用户随时取消正在运行的进程”。

当他/她取消时,我会抛出一条错误消息以及 http 状态代码。

对于这种情况,我决定使用 http 状态码 499。

但是这个状态码在spring框架的HttpStatus类中没有?

1.为什么这个状态码不属于spring类 (org.springframework.http.HttpStatus) 有什么具体原因吗?

2.我可以使用什么替代状态码来代替 499 ?

状态码 499 表示客户端的 API 在收到任何响应之前关闭了连接。

【问题讨论】:

    标签: spring spring-boot http-status-codes


    【解决方案1】:

    它在HttpStatus 上不可用,因为it's not assigned in the IANA registry

    您也无法使用 HttpStatus.valueOf 进行解析,但许多 Spring API 提供了 int statusCode 方法参数变体,因此您不必在任何地方都提供 HttpStatus

    现在关于您的用例,除非我遗漏了什么,否则如果对方取消并关闭连接,则设置 HTTP 响应状态没有意义,因为您将永远无法编写和发送它 - 是吗?

    【讨论】:

      【解决方案2】:

      Spring Framework 中 HttpStatus 类的 ENUM_CONSTANTS 没有定义 499 状态码。

      Check Documentation here

      尽管如此,您可以尝试为您的控制器为您的用例创建一个自定义状态代码,如以下教程中所述

      Create custom status code in Spring

      【讨论】:

      • 我的问题是为什么它没有包含在 HttpStatus 类中?
      • 对不起,我不知道......你需要询问 spring 框架的开发人员或在他们的问题跟踪器中提出问题
      猜你喜欢
      • 1970-01-01
      • 2017-12-30
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多