我在spring-cloud中使用feign,我遇到了问题。查询值包含`{aa%`导致虚假返回的http状态代码400
这是我的假客户端def。
@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
(字符串名称,字符串...值)。
这意味着如果包含{
的值和第一个值不能被编码。
我该如何解决这个问题?