我在 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
在 query(String name, String... values) 中调用的方法。
这意味着如果值包含{
and 在 first 中,则该值不能被编码。
我怎样才能解决这个问题?