ServletUtil和JakartaServletUtil新增获取所有响应头的方法

This commit is contained in:
Looly 2022-12-27 20:21:00 +08:00
parent 1a0c22b555
commit f4c46d5b98
3 changed files with 69 additions and 4 deletions

View File

@ -13,7 +13,8 @@
* 【core 】 修改PhoneUtil容易歧义的注释issue#I63GWK@Gitee
* 【crypto】 KeyUtil中的读取KeyStore文件的方法增加全局Providerissue#I6796G@Gitee
* 【extra 】 CompressUtil 新增 stripComponents 参数pr#904@Gitee
*
* 【extra 】 ServletUtil和JakartaServletUtil新增获取所有响应头的方法pr#2828@Github
### 🐞Bug修复
* 【json 】 修复普通byte数组转JSONArray时的异常pr#875@Gitee
* 【core 】 修复ArrayUtil.insert()不支持原始类型数组的问题pr#874@Gitee

View File

@ -5,6 +5,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.bean.copier.ValueProvider;
import cn.hutool.core.collection.ArrayIter;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
@ -20,12 +21,12 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
@ -35,11 +36,14 @@ import java.io.PrintWriter;
import java.io.Writer;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.List;
/**
* Servlet相关工具类封装
@ -299,6 +303,43 @@ public class JakartaServletUtil {
return headerMap;
}
/**
* 获取请求所有的头header信息
*
* @param request 请求对象{@link HttpServletRequest}
* @return header值
* @since 6.0.0
*/
public static Map<String, List<String>> getHeadersMap(final HttpServletRequest request) {
final Map<String, List<String>> headerMap = new LinkedHashMap<>();
final Enumeration<String> names = request.getHeaderNames();
String name;
while (names.hasMoreElements()) {
name = names.nextElement();
headerMap.put(name, ListUtil.list(false, request.getHeaders(name)));
}
return headerMap;
}
/**
* 获取响应所有的头header信息
*
* @param response 响应对象{@link HttpServletResponse}
* @return header值
*/
public static Map<String, Collection<String>> getHeadersMap(final HttpServletResponse response) {
final Map<String, Collection<String>> headerMap = new HashMap<>();
final Collection<String> names = response.getHeaderNames();
for (final String name : names) {
headerMap.put(name, response.getHeaders(name));
}
return headerMap;
}
/**
* 忽略大小写获得请求header中的信息

View File

@ -5,6 +5,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.bean.copier.ValueProvider;
import cn.hutool.core.collection.ArrayIter;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
@ -35,11 +36,13 @@ import java.io.PrintWriter;
import java.io.Writer;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
@ -300,13 +303,33 @@ public class ServletUtil {
return headerMap;
}
/**
* 获取请求所有的头header信息
*
* @param request 请求对象{@link HttpServletRequest}
* @return header值
* @since 6.0.0
*/
public static Map<String, List<String>> getHeadersMap(final HttpServletRequest request) {
final Map<String, List<String>> headerMap = new LinkedHashMap<>();
final Enumeration<String> names = request.getHeaderNames();
String name;
while (names.hasMoreElements()) {
name = names.nextElement();
headerMap.put(name, ListUtil.list(false, request.getHeaders(name)));
}
return headerMap;
}
/**
* 获取响应所有的头header信息
*
* @param response 响应对象{@link HttpServletResponse}
* @return header值
*/
public static Map<String, Collection<String>> getHeaderMap(HttpServletResponse response) {
public static Map<String, Collection<String>> getHeadersMap(HttpServletResponse response) {
final Map<String, Collection<String>> headerMap = new HashMap<>();
final Collection<String> names = response.getHeaderNames();