当业务中需要用的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);
}