当前位置:  开发笔记 > 编程语言 > 正文

带有列表参数的Spring Cloud Feign Client @RequestParam创建了错误的请求

如何解决《带有列表参数的SpringCloudFeignClient@RequestParam创建了错误的请求》经验,为你挑选了1个好方法。

我有一个Spring Clound Feign Client映射,定义如下

@RequestMapping(method = RequestMethod.GET, value = "/search/findByIdIn")
Resources get(@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定义的端点“结合”?



1> 小智..:

我遇到了多次出现参数问题,而不是预期的逗号分隔项目序列的相同问题。解决方案非常简单:

在我的假客户中,我使用了数组

feignClient.get(new Long[]{1L,2L,3L})

而不是集合/列表:

feignClient.get(Arrays.asList(1L,2L,3L))

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有