in.specmatic.test.ApacheHttpClientFactory.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of specmatic-core Show documentation
Show all versions of specmatic-core Show documentation
Turn your contracts into executable specifications. Contract Driven Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends.
Deprecation Notice for group ID "in.specmatic"
******************************************************************************************************
Updates for "specmatic-core" will no longer be available under the deprecated group ID "in.specmatic".
Please update your dependencies to use the new group ID "io.specmatic".
******************************************************************************************************
package `in`.specmatic.test
import io.ktor.client.HttpClient
import io.ktor.client.engine.apache.*
import io.ktor.client.plugins.*
import org.apache.http.conn.ssl.NoopHostnameVerifier
import org.apache.http.conn.ssl.TrustAllStrategy
import org.apache.http.ssl.SSLContextBuilder
const val BREATHING_ROOM_FOR_REQUEST_TIMEOUT_TO_KICK_IN_FIRST = 1
class ApacheHttpClientFactory(override val timeoutPolicy: TimeoutPolicy): HttpClientFactory {
constructor(timeout: Int): this(TimeoutPolicy(timeout))
override fun create(): HttpClient = HttpClient(Apache) {
expectSuccess = false
followRedirects = false
engine {
customizeClient {
setSSLContext(
SSLContextBuilder.create()
.loadTrustMaterial(TrustAllStrategy())
.build()
)
setSSLHostnameVerifier(NoopHostnameVerifier())
}
}
install(HttpTimeout) {
timeoutPolicy.configure(this)
}
}
}