SpringCloud Feign调用服务接口时,GET请求变成POST请求报错

当业务中需要用的Feign调用GET请求接口时,例如:

@GetMapping("/query_user")
@ApiOperation("查询用户")
public List<UserVO> queryByUserRequest(UserRequest userRequest){
    final List<UserVO> userList= userService.queryByUserRequest(userRequest);
     return userList;
}

其中UserRequest中封装有多个参数,使用Feign调用时,参数直接这样传递,浏览器默认获取参数转成POST调取接口,会报不支持POST请求错误

解决方法:

一:将传递参数一一列出来传递;

@FeignClient("user-main")
public interface UserFeignClient {
    @GetMapping("/query_user")
    Result<List<UserVO>> getUserList(@RequestParam Integer age, @RequestParam String name, @RequestParam(required = false) String job);
}

二:参数过多时加上注解 @SpringQueryMap

@FeignClient("user-main")
public interface UserFeignClient {
    @GetMapping("/query_user")
    Result<List<UserVO>> getUserList(@SpringQueryMapUserRequest userRequest);
}
原文地址:https://www.cnblogs.com/smiledragon/p/15067420.html