gpt4 book ai didi

java - 禁用 PathVariables 的假编码

转载 作者:行者123 更新时间:2023-12-04 17:28:29 25 4
gpt4 key购买 nike

我有以下 Feign 客户端:

public interface MyServiceClient {
@RequestMapping(method = RequestMethod.GET, value = "/item/{itemKey}")
Item getItem (@PathVariable("itemKey") String itemKey);
}
项目可以包含特殊字符,如 :::哪些正在被编码。
请求 URL 变成这样:
  • https://myservice.com/item/a%3Ab%3A%3Ac

  • 而不是:
  • https://myservice.com/item/a:b::c

  • 谁能帮助我了解我们如何解决这个问题?

    最佳答案

    OpenFeign 有一个问题跟踪:

  • https://github.com/OpenFeign/feign/issues/1190

  • 估计会由 spring-cloud-feign实现一旦完成。
    同时,我对这个问题的解决方法是创建一个 RequestInterceptor并替换 %3A:
    public class MyRequestInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate template) {
    template.uri(template.path().replaceAll("%3A", ":"));
    }
    }
    并使用此 requestInterceptor建立您的 feignClientfeignConfig :
    @Bean
    public Feign.Builder tcsClientBuilder() {
    return Feign.builder().requestInterceptor(new MyRequestInterceptor());
    }

    关于java - 禁用 PathVariables 的假编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61830167/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com