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,23 @@ 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.client5.http.ssl.HostnameVerificationPolicy
20
+ import org.apache.hc.core5.http.HttpHost
21
+ import org.apache.hc.core5.http.ssl.TLS
22
+ import org.apache.hc.core5.io.CloseMode
23
+ import org.apache.hc.core5.reactor.IOReactorConfig
24
+ import org.apache.hc.core5.ssl.SSLContexts
25
+ import org.apache.hc.core5.util.Timeout
26
+ import java.net.InetSocketAddress
27
+ import java.net.Proxy
28
+ import java.util.concurrent.TimeUnit
25
29
26
30
private const val MAX_CONNECTIONS_COUNT = 1000
27
31
private const val IO_THREAD_COUNT_DEFAULT = 4
@@ -89,6 +93,8 @@ internal class Apache5Engine(override val config: Apache5EngineConfig) : HttpCli
89
93
ClientTlsStrategyBuilder .create()
90
94
.setSslContext(config.sslContext ? : SSLContexts .createSystemDefault())
91
95
.setTlsVersions(TLS .V_1_3 , TLS .V_1_2 )
96
+ // TODO: Remove apply after https://github.com/apache/httpcomponents-client/pull/588 merged
97
+ .apply { setHostnameVerificationPolicy(HostnameVerificationPolicy .BOTH ) }
92
98
.build()
93
99
)
94
100
.setDefaultConnectionConfig(
0 commit comments