Skip to content

Commit

Permalink
ServletUtil和JakartaServletUtil新增获取所有响应头的方法
Browse files Browse the repository at this point in the history
  • Loading branch information
looly committed Dec 27, 2022
1 parent 1a0c22b commit f4c46d5
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 4 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
* 【core 】 修改PhoneUtil容易歧义的注释(issue#I63GWK@Gitee)
* 【crypto】 KeyUtil中的读取KeyStore文件的方法增加全局Provider(issue#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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
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;
Expand All @@ -20,12 +21,12 @@
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;
Expand All @@ -35,11 +36,14 @@
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相关工具类封装
Expand Down Expand Up @@ -299,6 +303,43 @@ public static Map<String, String> getHeaderMap(HttpServletRequest request) {
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中的信息
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
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;
Expand Down Expand Up @@ -35,11 +36,13 @@
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;

/**
Expand Down Expand Up @@ -300,13 +303,33 @@ public static Map<String, String> getHeaderMap(HttpServletRequest request) {
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();
Expand Down

0 comments on commit f4c46d5

Please sign in to comment.