All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.http.HttpInterceptor Maven / Gradle / Ivy

Go to download

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

There is a newer version: 5.8.34
Show newest version
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