cn.hutool.http.HttpInterceptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hutool-all Show documentation
Show all versions of hutool-all Show documentation
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
package cn.hutool.http;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/**
* Http拦截器接口,通过实现此接口,完成请求发起前或结束后对请求的编辑工作
*
* @param 过滤参数类型,HttpRequest或者HttpResponse
* @author looly
* @since 5.7.16
*/
@FunctionalInterface
public interface HttpInterceptor> {
/**
* 处理请求
*
* @param httpObj 请求或响应对象
*/
void process(T httpObj);
/**
* 拦截器链
*
* @param 过滤参数类型,HttpRequest或者HttpResponse
* @author looly
* @since 5.7.16
*/
class Chain> implements cn.hutool.core.lang.Chain, Chain> {
private final List> interceptors = new LinkedList<>();
@Override
public Chain addChain(HttpInterceptor element) {
interceptors.add(element);
return this;
}
@Override
public Iterator> iterator() {
return interceptors.iterator();
}
/**
* 清空
*
* @return this
* @since 5.8.0
*/
public Chain clear() {
interceptors.clear();
return this;
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy