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) で呼び出されるメソッド。
これは{
、最初の に と を含む値の場合、値をエンコードできないことを意味します。
どうすればこれを修正できますか?