You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3中HttpStatusCode如何替代HttpStatus获取原因短语?

Spring Boot 3中替代HttpStatus.getReasonPhrase()的方案

不需要手动构建状态码与消息的映射,你可以通过以下方式获取原有的reason phrase:

  • 直接强转HttpStatusCode为HttpStatus(针对标准状态码)
    Spring Boot 3中HttpStatus枚举实现了HttpStatusCode接口,绝大多数Web客户端返回的标准HTTP状态码(如404、500等)本质上就是HttpStatus的实例。直接强转后就能调用getReasonPhrase():

    HttpStatusCode statusCode = ...; // 从WebClient响应中获取的状态码
    if (statusCode instanceof HttpStatus httpStatus) {
        String reasonPhrase = httpStatus.getReasonPhrase();
    }
    
  • 通过状态码值解析为HttpStatus
    如果遇到无法直接强转的情况(比如非标准状态码,但属于HTTP标准范围内的),可以用HttpStatus.resolve()方法根据状态码数值解析出对应的枚举实例,再获取reason phrase:

    HttpStatusCode statusCode = ...;
    HttpStatus resolvedStatus = HttpStatus.resolve(statusCode.value());
    if (resolvedStatus != null) {
        String reasonPhrase = resolvedStatus.getReasonPhrase();
    } else {
        // 处理非标准状态码的情况,这类状态码本身没有默认的reason phrase
    }
    

需要注意的是,Spring Boot 3只是弃用了HttpStatus的部分过时构造方法和静态方法,枚举本身仍处于可用状态,所以上述方案不需要你维护额外的状态码映射表,完全复用框架内置的定义。

内容的提问来源于stack exchange,提问作者Urki90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:58:12