2

我正在使用最新版本的 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();

然后我试图做一个没有代理的发布请求。使用代理的请求也适用于使用 http 而不是 https 的 url。java.lang.IllegalStateException: No tunnel unless connected使用 https 和代理时收到以下错误。

4

0 回答 0