通过反射的方式修改request中header的内容


import org.apache.catalina.servlet4preview.http.HttpServletRequest;

/**
* 修改header信息,key-value键值对儿加入到header
* @param request
* @param key
* @param value
*/
private void updateHeaderInfo(HttpServletRequest request, String key, String value){
try {
RequestFacade requestFacade = (RequestFacade) request;
Field requestInfo = requestFacade.getClass().getDeclaredField("request");
requestInfo.setAccessible(true);
Object o = requestInfo.get(request);
Field coyoteRequest = o.getClass().getDeclaredField("coyoteRequest");
coyoteRequest.setAccessible(true);
Object o1 = coyoteRequest.get(o);
Field headers = o1.getClass().getDeclaredField("headers");
headers.setAccessible(true);
MimeHeaders o2 = (MimeHeaders)headers.get(o1);
o2.addValue(key).setString(value);
} catch (Exception e) {
e.printStackTrace();
}
}
posted @ 2022-12-30 15:00  小小的流星  阅读(386)  评论(0)    收藏  举报