首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Feign OkHttpClient配置为不在地址localhost*上使用代理

将Feign OkHttpClient配置为不在地址localhost*上使用代理
EN

Stack Overflow用户
提问于 2018-04-26 21:28:40
回答 1查看 2.7K关注 0票数 1

我在设置spring-cloud-feign的代理用法时遇到了问题,我正在使用下面的类为Feign生成一个OkHttpClient:

代码语言:javascript
复制
@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));
    }

}

这解决了对网络外的服务器进行调用的伪装客户端,但现在我遇到了本地主机服务器的问题,在本地主机服务器上,我不需要使用代理,当我进行调用时,伪装尝试使用代理并返回给我一个锥体

EN

回答 1

Stack Overflow用户

发布于 2018-12-17 08:42:34

如果你还在寻找答案,或者正在面临同样问题的人,这里是解决方案:

从您的config类中删除"@Configuration“注释,并添加以下bean:

代码语言:javascript
复制
@Bean
public Client client() {
    return new feign.okhttp.OkHttpClient(okHttpClient);
}

此外,您还需要在"@FeignClient“注释中通知"url”参数。

代码语言:javascript
复制
@FeignClient(name = "my-api", configuration = FeignConfigurationProxy.class, url = "http://my-url:my-port")

这会阻止Spring使用ribbon。如果您确实需要使用ribbon和代理,则需要在bean中对其进行调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50044278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档