一尘不染

如何在FeignClient中使用多个查询字符串参数调用url?

spring-boot

我尝试使用多个查询字符串参数调用Google API。奇怪的是,我找不到办法。

这是我的FeignClient:

@FeignClient(name="googleMatrix", url="https://maps.googleapis.com/maps/api/distancematrix/json")
public interface GoogleMatrixClient {

    @RequestMapping(method=RequestMethod.GET, value="?key={key}&origins={origins}&destinations={destinations}")
    GoogleMatrixResult process(@PathVariable(value="key") String key,
                               @PathVariable(value="origins") String origins,
                               @PathVariable(value="destinations") String destinations);

}

问题是的’&’字符RequestMapping value被替换为&

如何避免这种情况?

谢谢 !


阅读 1373

收藏
2020-05-30

共1个答案

一尘不染

所有查询参数将通过使用&字符的拆分自动从url中提取,并映射到方法声明中的相应@RequestParam。因此,您无需在@RequestMapping注释中指定所有键,而在此处仅应指定端点值。

为了使您的示例正常工作,您只需要将其余端点更改为

@RequestMapping(method=RequestMethod.GET)
GoogleMatrixResult process(@RequestParam(value="key") String key,
                           @RequestParam(value="origins") String origins,
                           @RequestParam(value="destinations") String destinations);
2020-05-30