枚举类型 表示不同的 HTTP 状态码和相应的错误消息

这篇具有很好参考价值的文章主要介绍了枚举类型 表示不同的 HTTP 状态码和相应的错误消息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java web业务中经常用常量来表示不同的 HTTP 响应状态,比如

public enum AppHttpCodeEnum {

    // 成功段0
    SUCCESS(200,"操作成功"),
    // 登录段1~50
    NEED_LOGIN(1,"需要登录后操作"),
    LOGIN_PASSWORD_ERROR(2,"密码错误"),
    // TOKEN50~100
    TOKEN_INVALID(50,"无效的TOKEN"),
    TOKEN_EXPIRE(51,"TOKEN已过期"),
    TOKEN_REQUIRE(52,"TOKEN是必须的"),
    // SIGN验签 100~120
    SIGN_INVALID(100,"无效的SIGN"),
    SIG_TIMEOUT(101,"SIGN已过期"),
    // 参数错误 500~1000
    PARAM_REQUIRE(500,"缺少参数"),
    PARAM_INVALID(501,"无效参数"),
    PARAM_IMAGE_FORMAT_ERROR(502,"图片格式有误"),
    SERVER_ERROR(503,"服务器内部错误"),
    // 数据错误 1000~2000
    DATA_EXIST(1000,"数据已经存在"),
    AP_USER_DATA_NOT_EXIST(1001,"ApUser数据不存在"),
    DATA_NOT_EXIST(1002,"数据不存在"),
    // 数据错误 3000~3500
    NO_OPERATOR_AUTH(3000,"无权限操作"),
    NEED_ADMIND(3001,"需要管理员权限");




    int code;
    String errorMessage;

    AppHttpCodeEnum(int code, String errorMessage){
        this.code = code;
        this.errorMessage = errorMessage;
    }

    public int getCode() {
        return code;
    }

    public String getErrorMessage() {
        return errorMessage;
    }
}

这种枚举的使用方式允许你在代码中使用这些常量来表示不同的 HTTP 响应状态,而不需要硬编码状态码和错误消息。这提高了代码的可读性和可维护性,并降低了错误的风险,因为你可以使用这些常量而不是手动输入状态码和消息。例如,你可以使用 AppHttpCodeEnum.SUCCESS.getCode() 来获取成功状态码,使用 AppHttpCodeEnum.SUCCESS.getErrorMessage() 来获取成功消息。并且无需要,实列化,直接写常量就会在加载服务的时候实列化,这个枚举类型 AppHttpCodeEnum 中定义的枚举常量是可以直接使用的,不需要创建新的枚举对象,就像使用静态变量一样

一般配合响应类来进行使用文章来源地址https://www.toymoban.com/news/detail-717404.html

public class ResponseResult<T> implements Serializable {

    private String host;

    private Integer code;

    private String errorMessage;

    private T data;

    public ResponseResult() {
        this.code = 200;
    }

    public ResponseResult(Integer code, T data) {
        this.code = code;
        this.data = data;
    }

    public ResponseResult(Integer code, String msg, T data) {
        this.code = code;
        this.errorMessage = msg;
        this.data = data;
    }

    public ResponseResult(Integer code, String msg) {
        this.code = code;
        this.errorMessage = msg;
    }

    public static ResponseResult errorResult(int code, String msg) {
        ResponseResult result = new ResponseResult();
        return result.error(code, msg);
    }

    public static ResponseResult okResult(int code, String msg) {
        ResponseResult result = new ResponseResult();
        return result.ok(code, null, msg);
    }

    public static ResponseResult okResult(Object data) {
        ResponseResult result = setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getErrorMessage());
        if(data!=null) {
            result.setData(data);
        }
        return result;
    }

    public static ResponseResult errorResult(AppHttpCodeEnum enums){
        return setAppHttpCodeEnum(enums,enums.getErrorMessage());
    }

    public static ResponseResult errorResult(AppHttpCodeEnum enums, String errorMessage){
        return setAppHttpCodeEnum(enums,errorMessage);
    }

    public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums){
        return okResult(enums.getCode(),enums.getErrorMessage());
    }

    private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String errorMessage){
        return okResult(enums.getCode(),errorMessage);
    }

    public ResponseResult<?> error(Integer code, String msg) {
        this.code = code;
        this.errorMessage = msg;
        return this;
    }

    public ResponseResult<?> ok(Integer code, T data) {
        this.code = code;
        this.data = data;
        return this;
    }

    public ResponseResult<?> ok(Integer code, T data, String msg) {
        this.code = code;
        this.data = data;
        this.errorMessage = msg;
        return this;
    }

    public ResponseResult<?> ok(T data) {
        this.data = data;
        return this;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }




}

到了这里,关于枚举类型 表示不同的 HTTP 状态码和相应的错误消息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3.2+ts错误:找不到模块“./App.vue”或其相应的类型声明。ts(2307)

    vue3.2+ts错误:找不到模块“./App.vue”或其相应的类型声明。ts(2307)   解决方法: 在项目根目录创建 env.d.ts 文件(如果已有,则在文件中追加),加入以下内容: 报错原因: 未定义 .vue文件的类型,导致 ts 无法解析其类型,在env.d.ts中定义后即可解决。

    2024年02月11日
    浏览(41)
  • Java实现方法接口入参同时包含文件、字段和对象等多种类型。HTTP请求返回415状态,Content type ‘application/octet-stream‘ not supported错误。

    方法一:对象不使用注解 使用Postman测试,直接将subject对象的字段填在key的位置 方法二:对象使用注解@RequestPart 使用Postman测试,将字段包装在subject对象里,使用Content type:application/json的内容类型 注:方法二在开发本地测试执行成功,但是在测试人员机子下不通过,执行报

    2024年02月12日
    浏览(32)
  • HTTP身份认证401不同情况下弱口令枚举方法及java代码实现

    大家好,我是ABC_123 。在日常的渗透测试及红队评估项目中,经常遇到http 401身份认证的情况,具体就是访问一个特定目录的时候,会弹出一个要求输入用户名密码的框框。很多朋友会误以为是与tomcat的http basic认证一样,就是把用户名及密码进行了简单的base64加密,然后使用

    2024年01月15日
    浏览(36)
  • vscode 中引入文件报类型错误:找不到模块“@/views/login/index.vue”或其相应的类型声明。ts(2307)没有可用的快速修复

    这个错误通常是因为 TypeScript 在编译时无法找到指定路径下的模块或类型声明文件。在这个例子中,它无法找到  @/views/login/index.vue  模块或其相应的类型声明。 请检查你的代码,确保指定路径下的文件存在并且已经正确导出。如果你使用了别名(例如  @ )来指定路径,也

    2024年02月15日
    浏览(28)
  • 表达式必须包含整数或枚举类型 - Visual Studio C++ 错误

    在使用 Visual Studio C++ 进行编程时,有时你可能会遇到错误消息:“表达式必须包含整数或枚举类型”。这个错误通常是由于在表达式中使用了错误的数据类型导致的。在本文中,我们将详细解释这个错误的原因,并提供一些可能的解决方案。 错误原因: 当你在 C++ 程序中使

    2024年02月05日
    浏览(33)
  • 第83篇:HTTP身份认证401不同情况下弱口令枚举方法及java代码实现(上篇)

    大家好,我是ABC_123 。在日常的渗透测试及红队评估项目中,经常遇到http 401身份认证的情况,具体就是访问一个特定目录的时候,会弹出一个要求输入用户名密码的框框。很多朋友会误以为是与tomcat的http basic认证一样,就是把用户名及密码进行了简单的base64加密,然后使用

    2024年02月04日
    浏览(32)
  • Visual Studio 2010 C++编译错误“表达式必须包含整数或枚举类型“

    Visual Studio 2010 C++编译错误\\\"表达式必须包含整数或枚举类型\\\" 在使用Visual Studio 2010编写C++代码时,有时候会出现这样的编译错误:“表达式必须包含整数或枚举类型”。这个错误通常是因为我们在写代码时使用了错误的数据类型或者运算符导致的。 下面我们来看一个例子: 在

    2024年02月08日
    浏览(32)
  • 【综合类型第 39 篇】HTTP 状态码详解

    这是【综合类型第 39 篇】,如果觉得有用的话,欢迎关注专栏。 注: 本篇博客只是在「阿里云开发者社区版 HTTP 状态码详解」中按自己的写作风格做了断句,归纳整理,方便查看和阅读。 尊重原创,原文链接:阿里云开发者社区版 一:什么是 HTTP 状态码 HTTP 状态码(HTTP

    2024年02月06日
    浏览(28)
  • HTTP进阶,Cookie,响应的回报结果含义,ajax,form表单,不同状态码代表的结果

    目录 一、Cookie 二、响应的回报结果含义 三、实际开发中的选择 Cookie是浏览器本地存储数据的一种机制, 在浏览器访问服务器之间,此时你的浏览器对着个服务器之间是一点也不了解的,你的浏览器上是没有任何和着个服务器相关的数据的。 浏览器拿到这些数据,就可以展示

    2024年02月08日
    浏览(29)
  • 枚举的含义、表示、规范、运用

    一组有共同特性的数据集合 由enum和枚举类型名称组成 第一种 第二种 先声明枚举变量再赋值给枚举变量 解释以上:由以上输出结果可知,枚举类型内第一个枚举成员变量的默认值为整型的0,如果第一个枚举成员变量设置了某值,那么以这个设置值为准,后续枚举成员

    2024年01月20日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包