Spring Cloud Openfeign Get请求发生405错误
2024-09-05 09:26:23
- kust-retrieve服务
@Resource
private AuthFeignService authFeignService;
@ApiOperation("获取用户信息")
@GetMapping("/get/user")
public ResponseEntity<UserMsgDTO> getUserName(HttpServletRequest request){
String token = request.getHeader("token");
UserMsgDTO userMsg = authFeignService.getUserMsg(token);
log.info("userMsg -> {}", userMsg);
return Results.success(userMsg);
}
@FeignClient("kust-auth")
public interface AuthFeignService {
@GetMapping("/auth/get/user")
UserMsgDTO getUserMsg(String jwtToken);
}
- kust-auth服务
@ApiOperation("获取token中的用户名信息")
@GetMapping("/get/user")
public UserMsgDTO getUserMsg(String jwtToken){
log.info("jwtToken -> {}", jwtToken);
return JwtUtils.getUSerNameByJwtToken(jwtToken);
}
- kust-retrieve服务报错如下:
feign.FeignException$MethodNotAllowed: status 405 reading AuthFeignService#getUserMsg(String)
- kust-auth服务报错如下:
Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
- 原因:在feign接口中没指定请求参数的位置,参数:"String jwtToken" 会被默认封装到请求体中,feign在传递请求时会检查请求体是否为空,不为空就将Get请求转为Post,而接受的服务kust-auth中的方法是Get,自然会报错405
- 解决如下:使用@RequestParam("jwtToken") 明确参数的位置,注意:括号中的字符串必须写,不然启动报错
@FeignClient("kust-auth")
public interface AuthFeignService {
@GetMapping("/auth/get/user")
UserMsgDTO getUserMsg(@RequestParam("jwtToken") String jwtToken);
}
- 再次启动,可以正常拿到数据
2022-01-25 11:28:43.577 INFO 16236 --- [nio-9001-exec-9] com.kust.search.api.v1.TokenController : userMsg -> UserMsgDTO(id=4, name=刘小胖同学)
最新文章
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置
- ANDROID_HOME on Mac OS X
- 使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序
- 【nginx】常见的陷阱和错误
- 2.前端笔记之css
- Android 6.0删除Apache HttpClient相关类的解决方法
- Bridging signals---hdu1950(最长上升子序列复杂度n*log(n) )
- EasyUi datagrid 表格分页例子
- Sql FAQ
- Tabhost嵌套以及Tab中多个Activity跳转的实现
- SQLite使用报告
- WPF自学笔记
- 使用sklearn进行数据挖掘-房价预测(2)—划分测试集
- MySQL中union和order by一起使用的方法
- TreeMap倒序以及遍历
- 练习:javascript淡入淡出半透明效果
- Linux i2c子系统(二) _通过i2c-dev.c访问设备的方法
- shiro源码篇 - shiro的session共享,你值得拥有
- 论文笔记之:Optical Flow Estimation using a Spatial Pyramid Network
- [工具]Tomcat CVE-2017-12615 远程代码执行
热门文章
- 基于python的数学建模---轮廓系数的确定
- SpringCLoud_Aibaba
- 卸载virtualbox中linux虚拟机的增强工具
- Python: 你所不知道的星号 * 用法
- FCOS论文复现:通用物体检测算法
- 基于opencv实现简单人脸检测
- 网络基础与osi七层与TCP/IP协议
- SQLMap入门——获取当前网站数据库的名称
- Django 之swagger中尝试调试post请求时返回 ";detail";: ";JSON parse error - Expecting value: line 1 column 1 (char)
- python实验报告(第11章)