HTTPVersion
HTTPClient.swift:1166struct HTTPVersion
struct HTTPVersion
import AsyncHTTPClient
This package provides simple HTTP Client library built on top of SwiftNIO.
struct Configuration
HTTPClient
configuration.
class HTTPClient
HTTPClient class provides API for request execution.
init(certificateVerification: CertificateVerification, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), connectionPool: TimeAmount = .seconds(60), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled, backgroundActivityLogger: Logger?)
init(certificateVerification: CertificateVerification, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), maximumAllowedIdleTimeInConnectionPool: TimeAmount = .seconds(60), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled)
init(certificateVerification: CertificateVerification, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled)
init(tlsConfiguration: TLSConfiguration? = nil, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), connectionPool: ConnectionPool = ConnectionPool(), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled)
init(tlsConfiguration: TLSConfiguration? = nil, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled)
static var singletonConfiguration: HTTPClient.Configuration { get }
The Configuration
for shared
which tries to mimic the platform’s default or prevalent browser as closely as possible.
var connectionPool: ConnectionPool
Connection pool configuration.
var decompression: Decompression
Enables automatic body decompression. Supported algorithms are gzip and deflate.
var dnsOverride: [String : String]
Sometimes it can be useful to connect to one host e.g. x.example.com
but request and validate the certificate chain as if we would connect to y.example.com
. dnsOverride
allows to do just that by mapping host names which we will request and validate the certificate chain, to a different host name which will be used to actually connect to.
var enableMultipath: Bool
Whether HTTPClient
will use Multipath TCP or not By default, don’t use it
var httpVersion: HTTPVersion
What HTTP versions to use.
var maximumUsesPerConnection: Int? { get set }
The maximum number of times each connection can be used before it is replaced with a new one. Use nil
(the default) if no limit should be applied to each connection.
var networkFrameworkWaitForConnectivity: Bool
Whether HTTPClient
will let Network.framework sit in the .waiting
state awaiting new network changes, or fail immediately. Defaults to true
, which is the recommended setting. Only set this to false
when attempting to trigger a particular error path.
var proxy: Proxy?
Upstream proxy, defaults to no proxy.
var redirectConfiguration: RedirectConfiguration
Enables following 3xx redirects automatically.
var timeout: Timeout
Default client timeout, defaults to no read
timeout and 10 seconds connect
timeout.
var tlsConfiguration: Optional<TLSConfiguration>
TLS configuration, defaults to TLSConfiguration.makeClientConfiguration()
.
struct ConnectionPool
Connection pool configuration.
struct Proxy
Proxy server configuration Specifies the remote address of an HTTP proxy.
struct RedirectConfiguration
Specifies redirect processing settings.
struct Timeout
Timeout configuration.
var ignoreUncleanSSLShutdown: Bool { get set }
Ignore TLS unclean shutdown error, defaults to false
.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable : Equatable
A type that can be hashed into a Hasher
to produce an integer hash value.
protocol Sendable
static let automatic: Self
HTTP/2 is used if we connect to a server with HTTPS and the server supports HTTP/2, otherwise we use HTTP/1
static let http1Only: Self
We will only use HTTP/1, even if the server would supports HTTP/2
static func != (lhs: Self, rhs: Self) -> Bool
Returns a Boolean value indicating whether two values are not equal.