Springboot http错误响应码转换中文大全

2023-11-19

分享一下我封装好的转换工具类

public enum HttpErrorStateConverter {

    /* 客户端错误 */
    BAD_REQUEST(400,  "由于包含语法错误,当前请求无法被服务器理解"),

    UNAUTHORIZED(401,  "请求需要用户验证"),

    PAYMENT_REQUIRED(402,  "非标准客户端错误状态响应码"),

    FORBIDDEN(403,  "您的权限不足,禁止访问"),

    NOT_FOUND(404,  "访问的资源不存在"),

    METHOD_NOT_ALLOWED(405,  "不支持的请求方法"),

    NOT_ACCEPTABLE(406,  "请求的资源的内容无法满足请求头中的条件"),

    PROXY_AUTHENTICATION_REQUIRED(407,  "客户端必须在代理服务器上进行身份验证"),

    REQUEST_TIMEOUT(408,  "请求超时"),

    CONFLICT(409,  "和被请求的资源的当前状态之间存在冲突"),

    GONE(410,  "被请求的资源在服务器上已经不再可用"),

    LENGTH_REQUIRED(411,  "没有定义 content-length 请求头"),

    PRECONDITION_FAILED(412,  "先决条件失败"),

    PAYLOAD_TOO_LARGE(413,  "请求提交的实体数据长度超出限制"),

    REQUEST_ENTITY_TOO_LARGE(413,  "请求提交的实体数据长度超出限制"),

    URI_TOO_LONG(414,  "请求的URI长度超过了服务器能够解释的长度"),

    REQUEST_URI_TOO_LONG(414,  "请求的URI长度超过了服务器能够解释的长度"),

    UNSUPPORTED_MEDIA_TYPE(415,  "不支持的请求资源"),

    REQUESTED_RANGE_NOT_SATISFIABLE(416,  "请求指定的所有数据范围的首字节位置超过了当前资源的长度"),

    EXPECTATION_FAILED(417,  "内容无法被满足"),

    I_AM_A_TEAPOT(418,  "本操作码是在1998年作为IETF的传统愚人节笑话, 在RFC 2324 超文本咖啡壶控制协议中定义的,并不需要在真实的HTTP服务器中定义。"),

    UNPROCESSABLE_ENTITY(422,  "请求格式正确,但是由于含有语义错误,无法响应"),

    LOCKED(423,  "当前资源被锁定"),

    FAILED_DEPENDENCY(424,  "由于之前的某个请求发生的错误,导致当前请求失败"),

    TOO_EARLY(425,  "请求事件过早"),

    UPGRADE_REQUIRED(426,  "协议需要升级"),

    PRECONDITION_REQUIRED(428,  "先决条件要求为满足"),

    TOO_MANY_REQUESTS(429,  "请求过多"),

    REQUEST_HEADER_FIELDS_TOO_LARGE(431,  "请求头字段长度太大"),

    UNAVAILABLE_FOR_LEGAL_REASONS(451,  "该请求因法律原因不可用"),

    /* 服务端错误 */
    INTERNAL_SERVER_ERROR(500, "服务器内部发生未知错误"),

    NOT_IMPLEMENTED(501, "此资源正在进行处理"),

    BAD_GATEWAY(502, "服务器网关错误"),

    SERVICE_UNAVAILABLE(503, "该服务不可用"),

    GATEWAY_TIMEOUT(504, "网关超时"),

    HTTP_VERSION_NOT_SUPPORTED(505, "此 HTTP 版本不受支持"),

    VARIANT_ALSO_NEGOTIATES(506, "服务器存在内部配置错误"),

    INSUFFICIENT_STORAGE(507, "服务器达到带宽限制"),

    LOOP_DETECTED(508, "检测到循环链接错误"),

    BANDWIDTH_LIMIT_EXCEEDED(509, "超出带宽限制"),

    NOT_EXTENDED(510, "获取资源所需要的策略并没有被满足"),

    NETWORK_AUTHENTICATION_REQUIRED(511, "需要网络身份验证");

    private static final HttpErrorStateConverter[] VALUES;

    static {
        VALUES = values();
    }


    public int statusCode;
    public HttpStatus status;
    public String description;

    HttpErrorStateConverter(int statusCode, String description) {
        this.statusCode = statusCode;
        // 获取对应的 HttpStatus
        this.status = HttpStatus.resolve(statusCode);

        if(this.status!=null){
            this.description = status.toString() + " "+ description;
        }else{
            this.description = description;
        }
    }

	// 传入响应码,返回一个 HttpErrorStateConverter
    public static HttpErrorStateConverter resolve(int statusCode){
        for (HttpErrorStateConverter converter : VALUES) {
            if (converter.statusCode  == statusCode) {
                return converter;
            }
        }
        return null;
    }
}

测试

class MyTest{
 
	public static void main(String[] args) {
        HttpErrorStateConverter resolve = HttpErrorStateConverter.resolve(500);
        HttpErrorStateConverter resolve2 = HttpErrorStateConverter.resolve(403);
        HttpErrorStateConverter resolve3 = HttpErrorStateConverter.resolve(404);
        assert resolve != null;
        assert resolve2 != null;
        assert resolve3 != null;
        
        System.out.println(resolve.description);
        System.out.println(resolve2.description);
        System.out.println(resolve3.description);
        System.out.println(HttpErrorStateConverter.BAD_GATEWAY);
        System.out.println(HttpErrorStateConverter.BAD_REQUEST);
        System.out.println(HttpErrorStateConverter.METHOD_NOT_ALLOWED);
    }
}

输出

500 INTERNAL_SERVER_ERROR 服务器内部发生未知错误
403 FORBIDDEN 您的权限不足,禁止访问
404 NOT_FOUND 访问的资源不存在
502 BAD_GATEWAY 服务器网关错误
400 BAD_REQUEST 由于包含语法错误,当前请求无法被服务器理解
405 METHOD_NOT_ALLOWED 不支持的请求方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot http错误响应码转换中文大全 的相关文章

随机推荐

  • SOIL在VS2015搭建

    这是SOIL库的主页 http www lonesock net soil html 下载好解压 进project vc9 用Vs打开项目 编译记得用release 如果用的OPengl是64位的就用64位编译 不然生成的lib不能用 运行
  • 积分图像(Integral Image)和积分直方图

    积分图像文章推荐 http blog sina com cn s blog 4cb0b54301017wwo html https blog csdn net u010807846 article details 50354000 参考文献
  • vue-router的routes中name属性作用详解

    我们常用vue js和vue router来创建单页应用 vue router能很方便的管理所有的单页组件 我们在定义每个路由的时候会有一个name的属性 如下面代码 通常我们不定义这个属性发现也没有任何问题 那么这个name到底有什么用呢
  • R语言绘图:实现数据点的线性拟合,进行显著性分析(R-squared、p-value)、添加公式到图像

    最近在做关于数据点线性拟合相关的研究 感觉R语言在这方面很方便 而且生成的图片很漂亮 所以在这里和大家分享一下代码 这是别人所绘制的拟合图像 很漂亮 自己也用iris鸢尾花数据集进行一个线性拟合看看 拟合线性模型最基本的函数就是lm 格式为
  • 进阶java大师之路,泛型在hashmap上的灵活运用

    由于 公司的试用的框架上 存在大量的hashmap的创建 产生大量的I O 以及内存的消耗 所以 抽了点时间 看书 effective java 这本书 同时 也从项目的作者 framework 上学习 吸取 最终写出了 符合生产的方案 存
  • 【FreeRTOS】Arduino开发STM32

    0 开发环境 工具 Vscode platformio arduino STM32F103C8T6 USB TTL 引脚连接 STM32直接设置为烧录模式即可 烧录完成后会自动运行程序 1 点灯加串口输出调试 注意事项 每次上传程序前 需要
  • krpano 获取当前场景名称

    var scene krpano get xml scene copy scene name scene get xml scene name set scene name get scene get xml scene name copy
  • element-ui中$confirm弹出框的确定和取消按钮互换位置

    element ui中 confirm弹出框的确定和取消按钮互换位置 1 定位元素 2 找到元素class 通过flex布局 进行位置更换 3 app vue中 进行全局修改 确认窗 取消确认按钮位置更换 el message box wr
  • 如何创建一个私有的Docker仓库

    目录 一 在docker的官方网站中直接创建 二 搭建自己本地的仓库 2 1 搭建自己的本地仓库 2 2 为本地镜像添加认证 2 2 1 添加证书加密功能 2 2 2 添加用户登录认证 三 部署Harbor仓库 总所周知 Docker的强大
  • 【项目实战】代码分支管理工具

    一 分支命名规范 develop Bleeding edge development used for development feature Temporary branch off develop used for feature de
  • 如果能下载或不能上传试试chmod 755放开读写权限

    如果能下载或不能上传试试chmod 755放开读写权限
  • MQTT客户端应用编程及接口分析

    MQTT客户端应用编程及接口分析 MQTT协议简介 MQTT是一个基于客户端 服务器的消息发布 订阅传输协议 MQTT协议是轻量 简单 开放和易于实现的 这些特点使它适用范围非常广泛 客户端服务端安装 1 安装 sudo apt add r
  • 如何在mysql中创建学生信息表_数据库怎么创建学生信息表

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 数据库创建学生信息表的方法是 1 新建表 单击数据库 studentDb 前图标 然后右键 表 文件包 单击 新建表 选项 进入 新建表 窗口 2 设定表标识字段id 填写
  • springboot3.x的坑!!!

    正常构建springboot项目出错 背景 2022年底springboot出了3 0 现在默认创建的springboot版本就是3 0 如果其他配置按照以前2 x的来 此时就会产生很多莫名其妙的错误 所以要手动选择2 x
  • 先验概率及后验概率等解释

    20201010 0 引言 在学习统计学的时候 在概率估计的部分 经常会遇到最大似然估计 最大后验估计等名词 这些似然和后验 都跟贝叶斯准则中的一些名词定义有关 这里参考书籍 Think Bayes 这部书 来记录这些名词 1 由糖果例子来
  • xmind怎么在左边创建_XMind Mac版如何创建幻灯片 XMind Mac幻灯片创建方法教程

    XMind Mac版怎么样创建幻灯片 有大量Mac用户需要使用XMind的 不过有不少朋友表示不知道XMind Mac版如何创建幻灯片 那么到底是如何创建的呢 不要急 在此给各位朋友分享的是XMind Mac版创建幻灯片步骤图文教程 赶紧来
  • 【Docker 基础教程】Centos7.5安装Docker并配置阿里云镜像

    文章目录 前言 安装docker 前置条件 测试并运行一个实例 安装命令 安装结果 建立一个容器 配置阿里云镜像 第一步 第二步 第三步 第四步 第五步 以下方式二选一 直接复制黏贴 分步创建 前言 前面一篇文章介绍到了Docker的基本概
  • [784]python解析PDF表格

    通过看别人写的博客 发现python里面有关PDF解析的通常有以下四种 pdfminer 擅长仅仅是文字的解析 本小白试过了 是把表格解析成普通的文本 还经常会伴随一些莫名奇妙的不认识的符号 这个方案pass掉 pdf2html 看例是把p
  • 【华为OD机试真题 JAVA】解密犯罪时间

    JS版 华为OD机试真题 JS 解密犯罪时间 标题 解密犯罪时间 时间限制 1秒 内存限制 262144K 语言限制 不限 警察在侦破一个案件时 得到了线人给出的可能犯罪时间 形如 HH MM 表示的时刻 根据警察和线人的约定 为了隐蔽 该
  • Springboot http错误响应码转换中文大全

    分享一下我封装好的转换工具类 public enum HttpErrorStateConverter 客户端错误 BAD REQUEST 400 由于包含语法错误 当前请求无法被服务器理解 UNAUTHORIZED 401 请求需要用户验证