使用Fegin调用get请求405错误

本文介绍了在使用Feign进行服务调用时遇到的GET请求405错误。通过分析生产者和消费者代码,发现错误源于缺少@RequestParam注解。解决方案是在调用方法中添加@RequestParam("userName")。问题的根本原因与HTTP方法不匹配和参数传递有关,参考了优快云博主凌麟柒的Feign错误处理文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 生产者代码 一个很简单的代码

@RestController
//@Value时,所在的类,需要加上@RefreshScope;不然配置不会自动刷新。
@RefreshScope
public class UserController {
    @Value("${test.name}")
   private String testvalue;
    @Value("${mysql.name}")
    private String mysql;

    @GetMapping(value = "/getClientMessage")
    public String getUserMessage(String userName){

        return userName+"用户名称"+testvalue+"------------------"+mysql;
    }
}

消费者代码

@FeignClient(name = "nacos-test",fallback = TestFeginServiceFallBack.class )
@Component
public interface TestFeginService {
    @RequestMapping(value = "/getClientMessage",method = RequestMethod.GET)
    public String getUserMessage( String userName);
}

调用以后出现错误信息

feign.FeignException: status 405 reading TestFeginService#getUserMessage(String)
	at feign.FeignException.errorStatus(FeignException.java:78) ~[feign-core-10.1.0.jar:na]
	at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:93) ~[feign-core-10.1.0.jar:na]

解决方式  加上@RequestParam("userName")

@FeignClient(name = "nacos-test",fallback = TestFeginServiceFallBack.class )
@Component
public interface TestFeginService {
    @RequestMapping(value = "/getClientMessage",method = RequestMethod.GET)
    public String getUserMessage(@RequestParam("userName") String userName);
}

问题产生的原因  参考

FeignClient调用报错405请求方法错误_凌麟柒的博客-优快云博客_feign调用405

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值