小编fsi*_*one的帖子

如何使用 Apache httpComponent5 设置 Spring HttpComponentsClientHttpRequestFactory?

我正在尝试在 Spring 中设置 httpClient5 ...我有以下代码:

PoolingHttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create()
                .setSSLSocketFactory(SSLConnectionSocketFactoryBuilder.create()
                        .setSslContext(SSLContexts.createSystemDefault())
                        .setTlsVersions(TLS.V_1_3, TLS.V_1_2)
                        .build())
                .setDefaultSocketConfig(SocketConfig.custom()
                        .setSoTimeout(Timeout.ofSeconds(5))
                        .build())
                .setPoolConcurrencyPolicy(PoolConcurrencyPolicy.STRICT)
                .setConnPoolPolicy(PoolReusePolicy.LIFO)
                .setConnectionTimeToLive(TimeValue.ofMinutes(1L))
                .build();

        CloseableHttpClient client = HttpClients.custom()
                .setConnectionManager(connectionManager)
                .setDefaultRequestConfig(RequestConfig.custom()
                        .setConnectTimeout(Timeout.ofSeconds(5))
                        .setResponseTimeout(Timeout.ofSeconds(5))
                        .setCookieSpec(StandardCookieSpec.STRICT)
                        .build())
                .build();

        CookieStore cookieStore = new BasicCookieStore();

        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();

        HttpClientContext clientContext = HttpClientContext.create();
        clientContext.setCookieStore(cookieStore);
        clientContext.setCredentialsProvider(credentialsProvider);
        clientContext.setRequestConfig(RequestConfig.custom()
                .setConnectTimeout(Timeout.ofSeconds(5000))
                .setResponseTimeout(Timeout.ofSeconds(5000))
                .build());



        // connect Spring httpComponent (client-side) with Apache httpClient
        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
        httpRequestFactory.setReadTimeout(60000);
        httpRequestFactory.setConnectTimeout(60000);
        httpRequestFactory.setHttpClient(client);
Run Code Online (Sandbox Code Playgroud)

ClosableHttpClient 类实现了与 setHttpClient(client) 不兼容的接口 org.apache.hc.client5.http.classic.HttpClient ;这是运行时错误:

java.lang.ClassCastException: class org.apache.hc.client5.http.impl.classic.InternalHttpClient cannot be cast …
Run Code Online (Sandbox Code Playgroud)

java spring apache-httpcomponents

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-httpcomponents ×1

java ×1

spring ×1