From b6d06b9323e0257dd0fb5c3317d7612c9d7bec49 Mon Sep 17 00:00:00 2001 From: linfso Date: Tue, 10 Dec 2024 22:54:34 +0800 Subject: [PATCH] md --- .../erp/oms/service/svc/FeignErrorDecoder.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/emis-oms-biz/src/main/java/com/xdadan/erp/oms/service/svc/FeignErrorDecoder.java b/emis-oms-biz/src/main/java/com/xdadan/erp/oms/service/svc/FeignErrorDecoder.java index 89e2df0..67de1de 100644 --- a/emis-oms-biz/src/main/java/com/xdadan/erp/oms/service/svc/FeignErrorDecoder.java +++ b/emis-oms-biz/src/main/java/com/xdadan/erp/oms/service/svc/FeignErrorDecoder.java @@ -21,9 +21,21 @@ public class FeignErrorDecoder extends ErrorDecoder.Default implements RequestIn @Override public void apply(RequestTemplate requestTemplate) { - Map headers = getHeaders(getHttpServletRequest()); - for(String headerName : headers.keySet()){ - requestTemplate.header(headerName, getHeaders(getHttpServletRequest()).get(headerName)); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder + .getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + Enumeration headerNames = request.getHeaderNames(); + if (headerNames != null) { + while (headerNames.hasMoreElements()) { + String name = headerNames.nextElement(); + String values = request.getHeader(name); + // 跳过 content-length,解决too many bites written的问题 + if (name.equalsIgnoreCase("content-length")){ + continue; + } + requestTemplate.header(name, values); + } + log.info("feign interceptor header:{}",requestTemplate); } }