15

我尝试使用多个查询字符串参数调用 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被替换为&

如何避免这种情况?

谢谢 !

4

2 回答 2

27

所有 Query 参数将通过使用字符的拆分自动从 url 中提取,&并映射到@RequestParam方法声明中的对应参数。

所以你不需要指定@RequestMapping注释的所有键,你应该只指定端点值。

为了使您的示例正常工作,您只需将休息端点更改为:

@RequestMapping(method=RequestMethod.GET)
GoogleMatrixResult process(@RequestParam(value="key") String key,
                           @RequestParam(value="origins") String origins,
                           @RequestParam(value="destinations") String destin);
于 2016-12-05T09:11:31.440 回答
-9

**用这个:-

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

然后形成 url 说:-
http://localhost:portnumber/.../key-value/origins-value/destinations-value 并点击这个 url,我相信它会为你使用 @PathVariable 注释**

于 2016-12-05T10:43:33.083 回答