我有一个Spring Clound Feign Client映射,定义如下
@RequestMapping(method = RequestMethod.GET, value = "/search/findByIdIn") Resourcesget(@RequestParam("ids") List ids);
当我打电话
feignClient.get(Arrays.asList(1L,2L,3L))
根据我在调试器中看到的内容,伪内核库形成以下请求:
/search/findByIdIn?ids=1&ids=2&ids=3
而不是预期的
/search/findByIdIn?ids=1,2,3
对于以与Feign客户端方法相同的方式声明的服务器Spring Data REST端点,这将是正确的。
因此,由于这个问题,请求总是返回空集。
我也看到过类似的问题,但好像Feign客户正在按我期望的那样在2015年就在工作。
我在用:
spring-cloud-starter-feign版本1.2.4.RELEASE
feign-httpclient版本9.4.0
虚拟内核版本9.4.0
有没有一种方法可以纠正这种行为,并将Spring Cloud Feign Client与Spring Data REST定义的端点“结合”?
我遇到了多次出现参数问题,而不是预期的逗号分隔项目序列的相同问题。解决方案非常简单:
在我的假客户中,我使用了数组
feignClient.get(new Long[]{1L,2L,3L})
而不是集合/列表:
feignClient.get(Arrays.asList(1L,2L,3L))