Springcloud Fegin Get 会自动转成Post

问题描述

在实际访问API时,是POST的方式;

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

@RequestMapping(value = "/permission/current",method = RequestMethod.GET )@Headers({"Content-Type: application/json","Authorization:{token}"})
Map<String,Object> getPermission(@Param("token") String token);

你期待的结果是什么?实际看到的错误信息又是什么?

怎么修改才可以支持Headers Authorization token,或者是 Springcloud Fegin 在此不支持?


心有法竹
浏览 1701回答 1
1回答

慕尼黑5688855

you can add a Interceptor, put token to header, then you do not have to send token as a param for all the function .public&nbsp;class&nbsp;FeignBasicAuthRequestInterceptor&nbsp;&nbsp;implements&nbsp;RequestInterceptor&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;FeignBasicAuthRequestInterceptor()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;@Override &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;apply(RequestTemplate&nbsp;template)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;request&nbsp;=&nbsp;((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;token&nbsp;=&nbsp;(String)request.getSession().getAttribute("Authorization"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template.header("Authorization",&nbsp;token); &nbsp;&nbsp;&nbsp;&nbsp;} }@Configurationpublic&nbsp;class&nbsp;FeignConfiguration&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;创建Feign请求拦截器,在发送请求前设置认证的token,各个微服务将token设置到环境变量中来达到通用 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;@Bean &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;FeignBasicAuthRequestInterceptor&nbsp;basicAuthRequestInterceptor()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;FeignBasicAuthRequestInterceptor(); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;feigin&nbsp;日志配置 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;@Bean &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Logger.Level&nbsp;feignLoggerLevel()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;feign.Logger.Level.FULL; &nbsp;&nbsp;&nbsp;&nbsp;} }
打开App,查看更多内容
随时随地看视频慕课网APP