123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package com.tofly.xrtymis.config;
- import com.alibaba.fastjson.JSON;
- import feign.Request;
- import feign.RequestInterceptor;
- import feign.RequestTemplate;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import javax.servlet.http.HttpServletRequest;
- import java.lang.reflect.Field;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- public class FeignConfig implements RequestInterceptor {
- @Override
- public void apply(RequestTemplate requestTemplate) {
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
- assert attributes != null;
- HttpServletRequest request = attributes.getRequest();
-
- requestTemplate.header("Authorization", request.getHeader("Authorization"));
-
- if("GET".equals(requestTemplate.method())){
- try{
-
- String json = requestTemplate.requestBody().asString();
- if (StringUtils.isEmpty(json)) {
- return ;
- }
- Map<String, Object> map= JSON.parseObject(json);
- Set<String> set = map.keySet();
- Iterator<String> it = set.iterator();
- while (it.hasNext()) {
- String key = (String) it.next();
- Object values = map.get(key);
- if (values!=null && !"".equals(values) && !"null".equals(values)) {
-
- requestTemplate.query(key,values.toString());
- }
- }
- Class requestClass=requestTemplate.getClass();
- Field field = requestClass.getDeclaredField("body");
- field.setAccessible(true);
-
- field.set(requestTemplate, Request.Body.empty());
- }catch (Exception e){
- }
- }
- }
- }
|