如何在 FeignClient 中使用多个查询字符串参数调用 url?
How to call url with multiple query string params in FeignClient?
我尝试使用多个查询字符串参数调用 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
的 '&' 字符被替换为 &
如何避免这种情况?
谢谢!
所有查询参数将通过使用 &
字符的拆分自动从 url 中提取,并映射到方法声明中相应的 @RequestParam
。
因此您不需要在 @RequestMapping
注释中指定所有键,您应该只在此处指定端点值。
为了使您的示例正常工作,您只需将休息端点更改为:
@RequestMapping(method=RequestMethod.GET)
GoogleMatrixResult process(@RequestParam(value="key") String key,
@RequestParam(value="origins") String origins,
@RequestParam(value="destinations") String destin);
**使用这个:-
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 注释它对你有用**
我尝试使用多个查询字符串参数调用 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
的 '&' 字符被替换为 &
如何避免这种情况?
谢谢!
所有查询参数将通过使用 &
字符的拆分自动从 url 中提取,并映射到方法声明中相应的 @RequestParam
。
因此您不需要在 @RequestMapping
注释中指定所有键,您应该只在此处指定端点值。
为了使您的示例正常工作,您只需将休息端点更改为:
@RequestMapping(method=RequestMethod.GET)
GoogleMatrixResult process(@RequestParam(value="key") String key,
@RequestParam(value="origins") String origins,
@RequestParam(value="destinations") String destin);
**使用这个:-
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 注释它对你有用**