Настройте Feign OkHttpClient, чтобы не использовать прокси на адресах localhost * - PullRequest
0 голосов
/ 26 апреля 2018

У меня проблема с настройкой использования прокси для spring-cloud-feign, я использую класс ниже для создания OkHttpClient для 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, когда мне не нужно использовать прокси, когда я делаю вызовы, симулятор пытается использовать прокси и возвращает мне конус

1 Ответ

0 голосов
/ 17 декабря 2018

Если вы все еще ищете ответ или тех, кто сталкивается с той же проблемой, вот решение:

Удалите аннотацию @Configuration из вашего класса конфигурации и добавьте следующий компонент:

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

Кроме того, вам также необходимо указать параметр «url» в аннотации «@FeignClient».

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

Это мешает Spring использовать ленту. Если вам нужно использовать ленту и прокси, вам нужно настроить это в бине.

...