【发布时间】:2016-12-07 06:41:09
【问题描述】:
我在spring-cloud中使用feign,遇到了问题。
这是我的假客户定义。
@FeignClient("food-service")
public interface FoodService {
@RequestMapping(value = {"/food"},method = {RequestMethod.GET})
List<Food> find(@RequestParam("name") String name);
}
foodService.find("{co%%");
此调用将返回状态码 400。
然后我查看了代码,在 RequestTemplate 类中找到了这段代码:
private String encodeIfNotVariable(String in) {
if (in == null || in.indexOf('{') == 0) {
return in;
}
return urlEncode(in);
}
查询中调用的方法encodeIfNotVariable(String name, String... values)。
这意味着如果值包含{ 并且在第一个中,则该值不能被编码。
我该如何解决这个问题?
【问题讨论】:
标签: spring-cloud spring-cloud-netflix netflix-feign feign