• 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错误的更多相关文章

  1. Spring Cloud OpenFeign使用教程

    文章目录 Spring Cloud OpenFeign Demo 怎么配置OpenFeignServer 怎么配置OpenFeignClient 多个参数传递问题 FeignClient的日志问题 多 ...

  2. SpringCloud升级之路2020.0.x版-29.Spring Cloud OpenFeign 的解析(1)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 在使用云原生的很多微服务中,比较小规模的可能直接依靠云服务中的负载均衡器进行内部域名与服务 ...

  3. Spring Cloud Gateway修改请求和响应body的内容

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 微服务生态组件之Spring Cloud OpenFeign详解和源码分析

    Spring Cloud OpenFeign 概述 Spring Cloud OpenFeign 官网地址 https://spring.io/projects/spring-cloud-openfe ...

  5. 无法完成你的itunes store 请求发生未知错误50

    装上itunes登陆itunes store时遂发现"无法完成您的itunes store的请求,发生未知错误(-50)"跃入眼帘,卸载重装数次还是不见效果,难道是WIN7和itu ...

  6. Feign 系列(05)Spring Cloud OpenFeign 源码解析

    Feign 系列(05)Spring Cloud OpenFeign 源码解析 [TOC] Spring Cloud 系列目录(https://www.cnblogs.com/binarylei/p/ ...

  7. Spring Cloud Gateway 之请求坑位[微服务IP不同请求会失败]

    问题产生背景 在使用Spring Cloud Gateway过程中,希望配置多Routes映射不同的微服务,因为Gateway 和Zuul的访问路径不同(zuul 会带有服务service Id),造 ...

  8. 为Spring Cloud Ribbon配置请求重试(Camden.SR2+)

    当我们使用Spring Cloud Ribbon实现客户端负载均衡的时候,通常都会利用@LoadBalanced来让RestTemplate具备客户端负载功能,从而实现面向服务名的接口访问. 下面的例 ...

  9. 阿里高级架构师教你如何使用Spring Cloud Ribbon重试请求

    在微服务调用中,一些微服务圈可能调用失败,通过再次调用以达到系统稳定性效果,本文展示如何使用Ribbon和Spring Retry进行请求再次重试调用. 在Spring Cloud中,使用load b ...

  10. Spring Cloud OpenFeign的原理(六)

    通过上篇我们了解OpenFeign他也可以完成远程通信,但是它并不是真正义意上的RPC通信,因为他是通过封装代理来实现的,下面和以前一样,知道了怎么用就来看下他是怎么实现的. 一.思考Feign要做的 ...

随机推荐

  1. lvm+xfs的扩缩容

    ext4文件系统可以经行扩缩容操作,但xfs的文件系统只能扩容,无法缩容 所以如果需要进行xfs的缩容,可以先使用xfsdump备份文件系统,然后对逻辑卷(/分区)进行缩容操作(此时原xfs文件系统会 ...

  2. (C++) C++ 中 shared_ptr weak_ptr

    shared_ptr std::shared_ptr<int> sp1 = new int(); // shared count = 1, weak count = 0 std::shar ...

  3. 3.7:基于Weka的K-means聚类的算法示例

    〇.目标 1.使用Weka平台,并在该平台使用数据导入.可视化等基本操作: 2.对K-means算法的不同初始k值进行比较,对比结果得出结论. 一.打开Weka3.8并导入数据 二.导入数据 三.Si ...

  4. 纷繁复杂见真章,华为云产品需求管理利器CodeArts Req解读

    摘要:到底什么是需求?又该如何做好需求管理? 本文分享自华为云社区<纷繁复杂见真章,华为云产品需求管理利器 CodeArts Req 解读>,作者:华为云头条 . 2022 年 8 月,某 ...

  5. linux-微服务-jar包部署指令

    1 orderservice docker build -t orderservice . docker run -d -p 8084:8084 --name orderservice orderse ...

  6. web项目部署上线(无虚拟主机,待学习)

    购买阿里云服务器 阿里云服务器ECS 系统镜像使用Ubuntu 20.04 LTS 使用ssh连接服务器,终端或者CMD中执行:$ssh root@x.x.x(阿里云服务器账号名@公网地址) 输入账号 ...

  7. [编程基础] C++多线程入门7-条件变量介绍

    原始C++标准仅支持单线程编程.新的C++标准(称为C++11或C++0x)于2011年发布.在C++11中,引入了新的线程库.因此运行本文程序需要C++至少符合C++11标准. 文章目录 7 条件变 ...

  8. JavaBean为何物?

    JavaBean为何物?   摘要:初学SSM框架之后,我对JavaBean这个东西开始有了简单的接触,在很久以前听见JavaBean这个词一直以为是一个非常高大上的东西,但是在仔细研究之后发现其本质 ...

  9. C# 如何发送邮件消息

    1.安装NUGET包 MailKit 2.代码如下 using MailKit.Net.Smtp; using MimeKit; using System.Collections.Generic; u ...

  10. 案例:用ajax get方法 查询用户列表

    html文件   <body> <div id="d1"></div> <button onclick="getlist()&q ...