在初始阶段,我们都是用RestTemplate作为服务间调用的方法。但是慢慢这种方式已经被废弃掉了。我们通过实现get请求做记录。
@Component public class UserUtil { @Autowired RestTemplate restTemplate; /** * 获取用户信息 * * @return */ public User getUser() { User resultVO = new User(); // 将请求头和请求参数设置到HttpEntity中 // 获取上下文与request对象 RequestAttributes requsetAttributes = RequestContextHolder.currentRequestAttributes(); HttpServletRequest request = ((ServletRequestAttributes)requsetAttributes).getRequest(); // 获取token String token = request.getHeader("token"); Map<String, Object> params = new HashMap<>(); params.put("token", token); // 地址 String url = "http://服务名/接口地址?参数"; // 发送feign请求,参数(地址,返回参数,入参) resultVO = restTemplate.getForObject(url, User.class, params); return resultVO; } }
这里有个坑 入参一定要这么写
String token = request.getHeader("token"); Map<String, Object> params = new HashMap<>(); params.put("token", token);