request 添加 header
package com.haier.cartech.utils; import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.util.http.MimeHeaders; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Field; @Slf4j public class HeaderUtil { /** * 添加header信息 * * @param request * @param key * @param value */ public static void setHeader(HttpServletRequest request, String key, String value) { Class<? extends HttpServletRequest> requestClass = request.getClass(); try { Field requestField = requestClass.getDeclaredField("request"); requestField.setAccessible(true); Object requestObj = requestField.get(request); Field coyoteRequestField = requestObj.getClass().getDeclaredField("coyoteRequest"); coyoteRequestField.setAccessible(true); Object coyoteRequestObj = coyoteRequestField.get(requestObj); Field headersField = coyoteRequestObj.getClass().getDeclaredField("headers"); headersField.setAccessible(true); MimeHeaders headersObj = (MimeHeaders) headersField.get(coyoteRequestObj); headersObj.removeHeader(key); headersObj.addValue(key).setString(value); } catch (Exception e) { log.error("reflect set header {} error {}", key, e); } } }