Tiago Nunes
09/30/2021, 2:35 PMAleksei Tirman [JB]
09/30/2021, 2:36 PMTiago Nunes
09/30/2021, 2:39 PMscope.responsePipeline.intercept(HttpResponsePipeline.Receive) { (type, content) ->
val newRequest =
HttpRequestBuilder().takeFrom(context.request).apply {
url {
parameters["token"] = newToken
}
attributes.put(hasTriedToRefreshTokenKey, true)
}
println("TokenAutoRefresh: proceed with new token!")
val newResponse = HttpResponseContainer(type, scope.request(newRequest))
proceedWith(newResponse)
}
Logcat is something like this:
REQUEST OK // first request
RESPONSE OK // first response
REQUEST OK // new request
RESPONSE OK // new response
io.ktor.client.call.NoTransformationFoundException: No transformation found: class io.ktor.client.features.observer.DelegatedResponse (Kotlin reflection is not available) -> class ExampleClass (Kotlin reflection is not available)
Aleksei Tirman [JB]
09/30/2021, 2:44 PMtakeFrom
method doesn't copy executionContext
so you use a new one.Tiago Nunes
09/30/2021, 3:26 PM