1
1
/*
2
- * Copyright 2014-2022 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
2
+ * Copyright 2014-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
3
3
*/
4
4
5
5
package io.ktor.client.engine.apache5
@@ -9,19 +9,22 @@ import io.ktor.client.plugins.*
9
9
import io.ktor.client.plugins.sse.*
10
10
import io.ktor.client.request.*
11
11
import io.ktor.utils.io.*
12
- import kotlinx.coroutines.*
13
- import org.apache.hc.client5.http.config.*
14
- import org.apache.hc.client5.http.impl.async.*
15
- import org.apache.hc.client5.http.impl.nio.*
16
- import org.apache.hc.client5.http.ssl.*
17
- import org.apache.hc.core5.http.*
18
- import org.apache.hc.core5.http.ssl.*
19
- import org.apache.hc.core5.io.*
20
- import org.apache.hc.core5.reactor.*
21
- import org.apache.hc.core5.ssl.*
22
- import org.apache.hc.core5.util.*
23
- import java.net.*
24
- import java.util.concurrent.*
12
+ import kotlinx.coroutines.Job
13
+ import org.apache.hc.client5.http.config.ConnectionConfig
14
+ import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient
15
+ import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder
16
+ import org.apache.hc.client5.http.impl.async.HttpAsyncClients
17
+ import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManagerBuilder
18
+ import org.apache.hc.client5.http.ssl.ClientTlsStrategyBuilder
19
+ import org.apache.hc.core5.http.HttpHost
20
+ import org.apache.hc.core5.http.ssl.TLS
21
+ import org.apache.hc.core5.io.CloseMode
22
+ import org.apache.hc.core5.reactor.IOReactorConfig
23
+ import org.apache.hc.core5.ssl.SSLContexts
24
+ import org.apache.hc.core5.util.Timeout
25
+ import java.net.InetSocketAddress
26
+ import java.net.Proxy
27
+ import java.util.concurrent.TimeUnit
25
28
26
29
private const val MAX_CONNECTIONS_COUNT = 1000
27
30
private const val IO_THREAD_COUNT_DEFAULT = 4
@@ -89,6 +92,10 @@ internal class Apache5Engine(override val config: Apache5EngineConfig) : HttpCli
89
92
ClientTlsStrategyBuilder .create()
90
93
.setSslContext(config.sslContext ? : SSLContexts .createSystemDefault())
91
94
.setTlsVersions(TLS .V_1_3 , TLS .V_1_2 )
95
+ // TODO: Uncomment this line and remove apply after update to v5.5
96
+ // https://github.com/apache/httpcomponents-client/commit/001eff70646c982c8c4a7c8a385d92f42579f2b5
97
+ // .setHostVerificationPolicy(config.sslHostnameVerificationPolicy)
98
+ .apply { setHostnameVerificationPolicy(config.sslHostnameVerificationPolicy) }
92
99
.build()
93
100
)
94
101
.setDefaultConnectionConfig(
0 commit comments