Tiago Nunes
09/29/2021, 1:57 PMHttpRequest
?
I want to send a new request in responsePipeline
based on the previous request, with a small difference in the bodyTiago Nunes
09/29/2021, 1:59 PMoverride fun install(feature: TokenAutoRefresh, scope: HttpClient) {
scope.responsePipeline.intercept(HttpRequestPipeline.State) { (type, content) ->
if (content !is ByteReadChannel) return@intercept
with(feature) {
if (context.response.isTokenValid()) {
proceed()
} else {
val newToken = runCatching { refreshToken?.invoke() }.getOrNull() ?: return@intercept
val newRequest = context.request.copy() <-- doesn't exist
scope.request(newRequest)
}
}
}
}
Rustam Siniukov
09/29/2021, 1:59 PMHttpRequestBuilder().takeFrom(context.request)
Rustam Siniukov
09/29/2021, 2:00 PMTiago Nunes
09/29/2021, 2:00 PMTiago Nunes
09/29/2021, 2:02 PMRustam Siniukov
09/29/2021, 2:20 PMAuth
feature. It does very similar to what you try to achieveTiago Nunes
09/29/2021, 3:46 PMval newRequest = HttpRequestBuilder().takeFrom(context.request).apply {
header("token", newToken)
}
proceedWith(HttpResponseContainer(type, scope.request(newRequest)))
But unfortunately, it doesn’t seem to do anything and shows no logs…