Spring Cloud Openfeign Get请求发生405错误
- 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=刘小胖同学)
Spring Cloud Openfeign Get请求发生405错误的更多相关文章
- Spring Cloud OpenFeign使用教程
文章目录 Spring Cloud OpenFeign Demo 怎么配置OpenFeignServer 怎么配置OpenFeignClient 多个参数传递问题 FeignClient的日志问题 多 ...
- SpringCloud升级之路2020.0.x版-29.Spring Cloud OpenFeign 的解析(1)
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 在使用云原生的很多微服务中,比较小规模的可能直接依靠云服务中的负载均衡器进行内部域名与服务 ...
- Spring Cloud Gateway修改请求和响应body的内容
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 微服务生态组件之Spring Cloud OpenFeign详解和源码分析
Spring Cloud OpenFeign 概述 Spring Cloud OpenFeign 官网地址 https://spring.io/projects/spring-cloud-openfe ...
- 无法完成你的itunes store 请求发生未知错误50
装上itunes登陆itunes store时遂发现"无法完成您的itunes store的请求,发生未知错误(-50)"跃入眼帘,卸载重装数次还是不见效果,难道是WIN7和itu ...
- Feign 系列(05)Spring Cloud OpenFeign 源码解析
Feign 系列(05)Spring Cloud OpenFeign 源码解析 [TOC] Spring Cloud 系列目录(https://www.cnblogs.com/binarylei/p/ ...
- Spring Cloud Gateway 之请求坑位[微服务IP不同请求会失败]
问题产生背景 在使用Spring Cloud Gateway过程中,希望配置多Routes映射不同的微服务,因为Gateway 和Zuul的访问路径不同(zuul 会带有服务service Id),造 ...
- 为Spring Cloud Ribbon配置请求重试(Camden.SR2+)
当我们使用Spring Cloud Ribbon实现客户端负载均衡的时候,通常都会利用@LoadBalanced来让RestTemplate具备客户端负载功能,从而实现面向服务名的接口访问. 下面的例 ...
- 阿里高级架构师教你如何使用Spring Cloud Ribbon重试请求
在微服务调用中,一些微服务圈可能调用失败,通过再次调用以达到系统稳定性效果,本文展示如何使用Ribbon和Spring Retry进行请求再次重试调用. 在Spring Cloud中,使用load b ...
- Spring Cloud OpenFeign的原理(六)
通过上篇我们了解OpenFeign他也可以完成远程通信,但是它并不是真正义意上的RPC通信,因为他是通过封装代理来实现的,下面和以前一样,知道了怎么用就来看下他是怎么实现的. 一.思考Feign要做的 ...
随机推荐
- Scala- Cannot run program "powershell.exe": CreateProcess error=5, 拒绝访问
安装scala后,按照官网的helloworld教程学习执行 sbt new scala/hello-world.g8 的时候,出现下图错误. 解决方案:关闭360
- ubuntu 20.04 / 22.04 运行32位程序
sudo dpkg --add-architecture i386 sudo apt install libc6:i386 libstdc++6:i386 sudo apt-get update su ...
- IIS部署WebApi跨域不生效
在IIS8.5上部署了WebApi程序,但是跨域不生效检查了前端和后端都没有问题. 后面才发现在应用程序池中需要设置为集成模式.经典模式下不能正常使用
- html网页图片加载失败的友好处理方式
网络环境总是多样且复杂的,一张网页图片可能会因为网路状况差而加载失败或加载超长时间,也可能因为权限不足或者资源不存在而加载失败,这些都会导致用户体验变差,所以我们需要对图片加载失败时的情况进行一个弥补 ...
- 【Java EE】Day12 XML、约束(DTD、Schema)、解析方式、Jsoup、选择器(Selector、XPath)
一.XML介绍 1.概述 Extensible Markup Language--可扩展标记语言 标记语言 :标签构成 可扩展:可以自定义标签 2.功能 存储数据 作为配置文件使用 作为数据载体在网络 ...
- 简单的Dos命令学习
Dos命令学习 打开CMD的方式 从菜单栏打开,windows系统里 win+R 输入cmd 在任意文件夹下,按住shift+右键,点击打开PowerShell 在资源管理器的地址栏前面加上cmd+空 ...
- 全网最全的linux上docker安装oracle的详细文档,遇到了n个问题,查了几十篇文章,最终汇总版,再有解决不了的,私聊我,我帮你解决
目录 全网最全的linux上docker安装oracle的详细文档,遇到了n个问题,查了几十篇文章,最终汇总版,再有解决不了的,私聊我,我帮你解决 1. 拉取阿里镜像oracle 2. 创建初始化数据 ...
- Window系统的mysql数据库定时备份
原文:Window系统的mysql数据库定时备份 - Stars-One的杂货小窝 最近老大提到了数据库备份的功能,由于服务器是window系统的,所以研究了下备份的方案,特此记录 主要是实现每天定时 ...
- windows上用vs2017静态编译onnxruntime-gpu CUDA cuDNN TensorRT的坎坷之路
因为工作业务需求的关系,需编译onnxruntime引入项目中使用,主项目exe是使用的vs2017+qt5.12. onnxruntime就不用介绍是啥了撒,在优化和加速AI机器学习推理和训练这块赫 ...
- cs231n__3. LostFunction
CS231n 3.1 Lost Function 我们上次提到,要如何选择最优的W呢? 这就是要选择几种损失函数了. 我们要找到一种可行的方法来选择最优的W 先看简单的3个样本的例子 正式定义损失函数 ...