IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> springboot返回,修改http状态码 -> 正文阅读

[网络协议]springboot返回,修改http状态码

作者:recommend-item-box type_blog clearfix
  1. 定义ErrCode
**
 * 错误码 枚举
 */
public enum ErrCode {

    /**
     * 系统错误
     */
    SYSTEM_ERROR(1000, "系统错误"),

    /**
     * 参数错误
     */
    PARAMETER_ERROR(1001, "参数错误"),

    /**
     * 参数错误
     */
    NOT_NULL_ERROR(1002, "参数不能为空"),

    /**
     * 文件类型错误
     */
    FILE_TYPE_ERROR(1003, "文件类型错误"),

    /**
     * 数据不存在
     */
    DATA_IS_EMPTY(1004, "数据不存在"),

    PERMIT_FAIL(400401, "没有相关权限"),

    UNLOGIN(401, "未登录"),

    /**
     * 操作失败,一般用于修改删除,没有成功
     */
    FAIL(1004, "操作失败");


    Integer code;
    String msg;

    ErrCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public static final Map<Integer, String> ERR_CODE = new HashMap<>();

    static {
        for (ErrCode errCode : ErrCode.values()) {
            ERR_CODE.put(errCode.getCode(), errCode.getMsg());
        }
    }

    public String getMsg() {
        return msg;
    }

    public Integer getCode() {
        return code;
    }

    public static String getMsg(Integer code) {
        String msg = ERR_CODE.get(code);
        if (!StringUtils.isEmpty(msg)) {
            return msg;
        }
        return null;
    }
}

1、定义Exception

/**
 * @author lyl
 */
@Slf4j
public class UnLoginException extends RuntimeException {
    @Getter
    private Integer code = 401;
    @Getter
    private String message;
    @Getter
    private Object data;

    public UnLoginException() {
        this(ErrCode.UNLOGIN.getCode(), ErrCode.UNLOGIN.getMsg(), null);
    }

    public UnLoginException(Object data) {
        this(ErrCode.UNLOGIN.getCode(), ErrCode.UNLOGIN.getMsg(), data);
    }


    public UnLoginException(int code, String message, Object data) {
        if (code == 0) {
            throw new RuntimeException("0 are not allowed to set !");
        }
        this.code = code;
        this.message = message;
        this.data = data;
    }
}
  1. 全局异常处理类
/**
 * @author lyl
 */
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {
    @ResponseStatus(HttpStatus.UNAUTHORIZED) // 这里非常关键,这是修改的状态吗
    @ExceptionHandler(UnLoginException.class)
    public Res unloginExceptionHandler(UnLoginException e) {
        log.error("An " + e.getClass().getName() + " occurs :{}", e);
        Res res = new Res(e.getCode(), e.getMessage(), e.getData());
        return res;
    }
}
  1. 抛出异常
throw new UnLoginException()

通过以上4个步骤,就可实现抛出异常时修改http状态码,主要用在前后端分离时,前端根据状态吗进行页面跳转。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2021-10-18 17:44:23  更:2021-10-18 17:46:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/21 9:15:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码