配置feign okhttpclient以不使用地址localhost*上的代理



我遇到了问题,设置了spring-cloud-feign的代理用法,我正在使用下面的类来生产okhttpclient for feign:

@Configuration
public class FeignConfigurationProxy {
    @Value ("$ {url.proxy_host}")
    private String HOST_PROXY;
    @Value ("$ {url.proxy_port}")
    private Integer PORT_PROXY;
    private OkHttpClient okHttpClient;
    private Proxy proxy;
    @PostConstruct
    public void init () {
        buildProxy ();
        buildOkHttpClient ();
    }
    @Bean (name = "feign")
    public Feign buildClient () {
        return Feign.builder (). client (new feign.okhttp.OkHttpClient (okHttpClient)).
    }

    @Bean (name = "okhttpclient")
    public OkHttpClient okHttpClient () {
        return okHttpClient;
    }
    public void buildOkHttpClient () {
        buildProxy ();
        okHttpClient = new OkHttpClient.Builder (). proxy (proxy) .build ();
    }
    public void buildProxy () {
        proxy = new Proxy (Proxy.Type.HTTP, new InetSocketAddress (HOST_PROXY, PORT_PROXY));
    }
}

这是为在网络之外拨打服务器的假装客户端解决的,但是现在我对Localhost服务器有疑问,而我不需要使用代理,当我打电话时代理并返回我一个锥

如果您仍在寻找答案,或者要面对相同问题的答案,则是解决方案:

从配置类删除" @configuration"注释,然后添加以下bean:

@Bean
public Client client() {
    return new feign.okhttp.OkHttpClient(okHttpClient);
}

另外,您还需要告知" @feignclient"注释中的" URL"参数。

@FeignClient(name = "my-api", configuration = FeignConfigurationProxy.class, url = "http://my-url:my-port")

防止弹簧使用色带。如果您确实需要使用功能区和代理,则需要在Bean中进行调整。

最新更新