313 Star 3.4K Fork 731

dromara / forest

 / 详情

可自定义请求是否成功的条件

已完成
拥有者
创建于  
2021-09-16 20:07

可配置请求是否成功的条件

例如:


// 当且仅当HTTP响应状态码为 200 ~ 299 范围内时才成功
request.successWhen((req, res) -> res.status_2xx());

此外还可以通过 @Success 注解来定义成功条件

先要定义 SuccessWhen 接口的实现类


public class TestSuccessWhen implements SuccessWhen {

    /**
     * 请求成功条件
     * @param req Forest请求对象
     * @param res Forest响应对象
     * @return 是否成功
     */
    @Override
    public boolean successWhen(ForestRequest req, ForestResponse res) {
        // 没有异常 并且 状态码在正常范围 并且 状态码不等于203
        // 当然在这里也可以写其它条件,比如 通过 res.getData() 或 res.getConent() 获取业务数据
        // 再更具业务数据判断是否成功
        return res.noException() && res.statusOk() && res.statusCode() != 203;
    }
}


在Forest请求接口方法上挂上 @Success 注解

@Get("http://localhost:${port}/")
@Success(condition = TestSuccessWhen.class)
String getData();

若调用 getData() 后,返回的状态码为 203, 就会被认为是请求失败,如果设置了重试次数大于0,就会去执行重试任务。
若没有重试次数可用,则进入 onError

评论 (1)

公子骏 创建了任务
公子骏 关联仓库设置为dromara/forest
公子骏 任务状态待办的 修改为进行中
公子骏 负责人设置为公子骏
公子骏 添加了
 
新需求
标签
公子骏 修改了描述
公子骏 修改了标题
公子骏 修改了描述
公子骏 修改了描述
展开全部操作日志

已在 1.5.3 版本实现

公子骏 任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
1216742 dt flys 1594991700
Java
1
https://gitee.com/dromara/forest.git
git@gitee.com:dromara/forest.git
dromara
forest
forest

搜索帮助