Прокси-сервер Apache HttpClient 5.0 HTTPS: «Нет туннеля, если он не подключен» - PullRequest
0 голосов
/ 31 января 2019

Я использую последнюю версию JDK8. Мой CloseableHttpAsyncClient создается следующим образом:

        try{
            sslContext = SSLContexts.custom()
                    .setProvider(Conscrypt.newProvider())
                    .build();
        }catch (Exception e){
            e.printStackTrace();
        }

        final PoolingAsyncClientConnectionManager cm = PoolingAsyncClientConnectionManagerBuilder.create()
                .setTlsStrategy(new ConscryptClientTlsStrategy(sslContext))
                .build();

BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            if (proxy.isAuth()) {
                credentialsProvider.setCredentials(
                        new AuthScope(proxy.getIp(), Integer.parseInt(proxy.getPort())),
                        new UsernamePasswordCredentials(proxy.getUsername(), proxy.getPassword().toCharArray()));
            }

HttpHost p = new HttpHost(proxy.getIp(), Integer.parseInt(proxy.getPort()), "http");

asyncClient = HttpAsyncClients.custom()
                    .setVersionPolicy(HttpVersionPolicy.FORCE_HTTP_1)
                    .setConnectionManager(cm)
                    .setUserAgent(Utils.USER_AGENT)
                    .setDefaultCookieStore(cookieStore)
                    .setDefaultCredentialsProvider(credentialsProvider)
                    .setProxy(p)
                    .build();

asyncClient.start();

Затем я пытаюсь выполнить почтовый запрос, который работает без прокси.Запрос с прокси также работает с URL, используя http, а не https.Я получаю следующую ошибку java.lang.IllegalStateException: No tunnel unless connected при использовании https и прокси.

...