Rak
11/07/2021, 2:21 PMAleksei Tirman [JB]
11/08/2021, 6:47 AMHttpSendPipeline
to append the ETag header to a request and the HttpReceivePipeline
to store a header value to from a response.
import io.ktor.client.*
import io.ktor.client.engine.apache.*
import io.ktor.client.request.*
import io.ktor.client.statement.*
import io.ktor.http.*
suspend fun main() {
val client = HttpClient(Apache)
client.sendPipeline.intercept(HttpSendPipeline.Before) {
// Get header value from a DB
context.headers.append(HttpHeaders.ETag, "header-value")
}
client.receivePipeline.intercept(HttpReceivePipeline.Before) {
val etag = context.response.etag()
if (etag != null) {
// Store E-Tag in a DB
}
}
val r = client.get<String>("<https://httpbin.org/get>")
println(r)
}