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

    interceptor

    The interceptor closure.

  • Registers a response interceptor. Executed in registration order.

    Declaration

    Swift

    public func onResponse(_ interceptor: @escaping HttpResponseInterceptor)

    Parameters

    interceptor

    The interceptor closure.

  • Creates a default configuration.

    Declaration

    Swift

    public init()
  • Default HTTP client configuration.

    Declaration

    Swift

    static var `default`: HttpClientConfig { get }