feign客户端get请求--出现异常"Method Not Allowed: Request method ‘POST‘ not supported"

欣喜 Java每日一问 发布时间:2024-07-29 09:23:20 阅读数:5505 1
下文笔者讲述今天使用feign客户端get请求时,出现POST请求不支持的异常处理方法,如下所示
今天在代码中进行feign调用时
  客户端get请求
  服务端接受也为get请求,但是代码还是出现相应的报错信息,如下所示
     Method Not Allowed: Request method ‘POST’ not supported
feign客户端

@GetMapping(“/list”)
Result<?> queryPageList(User user,
@RequestParam(name = “pageNo”, defaultValue = “1”) Integer pageNo,
@RequestParam(name = “pageSize”, defaultValue = “10”) Integer pageSize) {
    /** 业务逻辑代码 */
}

2.feign服务端

@Component
@FeignClient(value = FeignConstant.OCP_CLOUD_SYSTEM, fallbackFactory = AccountAPIFallbackFactory.class)
public interface AccountApi {

    @GetMapping(value = "/account/accountBookDetail/list")
    Result<?> accountBookDetailPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                        User user);

}

出现这种情况的原因

因为使用了User对象
 而在feign调用中无法识别是否为get/post 请求
 因此强转成了post请求
 导致在服务端报错Method Not Allowed: Request method ‘POST’ not supported

Feign不支持POST请求时的解决方法

在feign服务端api中
加上注解@SpringQueryMap 即可解决,注解的作用是将实体转成表单数据
@Component
@FeignClient(value = FeignConstant.OCP_CLOUD_SYSTEM, fallbackFactory = AccountAPIFallbackFactory.class)
public interface AccountApi {

    @GetMapping(value = "/account/accountBookDetail/list")
    Result<?> accountBookDetailPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                        @SpringQueryMap User user);

}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202407/8158.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者