KRequestInterceptor

data class KRequestInterceptor(val onResponse: suspend (HttpResponse) -> Unit? = null)(source)

Hook for observing every response globally.

Request-side mutations (headers, auth, trace IDs) belong in KAuthProvider.Custom, not here — keeping a single, ordered injection point before the request is sent.

Use onResponse for side effects that don't alter the request: analytics, structured logging, response-level metrics, etc.

Usage:

KHttpConfig(
interceptor = KRequestInterceptor(
onResponse = { response ->
analytics.track(
"http_response",
mapOf(
"status" to response.status.value,
"path" to response.request.url.encodedPath,
)
)
},
)
)

For global request headers, use KAuthProvider.Custom instead:

KHttpConfig(
authProvider = KAuthProvider.Custom { request ->
request.header("X-App-Version", BuildConfig.VERSION_NAME)
request.header("X-Trace-Id", UUID.randomUUID().toString())
session.accessToken.value?.let { request.bearerAuth(it) }
}
)

Constructors

Link copied to clipboard
constructor(onResponse: suspend (HttpResponse) -> Unit? = null)

Properties

Link copied to clipboard
val onResponse: suspend (HttpResponse) -> Unit?