RestTemplate使用get请求实现服务间调用(eureka)

@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);

猜你喜欢

转载自blog.csdn.net/qq_20143059/article/details/105637260