HttpClientConfig
public final class HttpClientConfig
Configuration class for HTTP client instances.
HttpClientConfig provides a DSL-style interface for configuring
HTTP client behavior including timeouts, logging, and interceptors.
Configure this once up front; it is not intended for concurrent mutation after use.
Example:
let config = HttpClientConfig()
config.timeout = 30.0
config.logger = LogManager.standard
config.onRequest { request in
request.setHeader(name: "Authorization", value: "Bearer \(token)")
}
config.onResponse { response in
config.logger.d("Status \(response.status)")
}
-
Request timeout in seconds. Defaults to 15 seconds to match Android implementation.
Declaration
Swift
public var timeout: TimeInterval -
Logger instance for network operations. Defaults to warning level.
Declaration
Swift
public var logger: Logger -
Registers a request interceptor. Executed in registration order.
Declaration
Swift
public func onRequest(_ interceptor: @escaping HttpRequestInterceptor)Parameters
interceptorThe interceptor closure.
-
Registers a response interceptor. Executed in registration order.
Declaration
Swift
public func onResponse(_ interceptor: @escaping HttpResponseInterceptor)Parameters
interceptorThe interceptor closure.
-
Creates a default configuration.
Declaration
Swift
public init() -
Default HTTP client configuration.
Declaration
Swift
static var `default`: HttpClientConfig { get }
View on GitHub