Ktor v2.0.0 for Android.
The default ktor header "Accept" just overwrites my "Accept" header.
This is the way I am initializing my HttpClient:
HttpClient(Android) {
defaultRequest {
header("Key", BuildConfigCore.API_KEY)
header("Accept", "application/vnd.***.mobile-v8+json")
host = hostAddress
url.protocol = URLProtocol.HTTPS
}
install(Logging) {
if (BuildConfig.DEBUG) {
logger = Logger.DEFAULT
level = LogLevel.ALL
}
}
install(ContentNegotiation) {
gson()
}
expectSuccess = false
}
But when i check with Charles interceptor, my headers looks like:
I have that
application/json
which overwrites my application/vnd...
value.
Is it any way to replace the default "Accept" header?
You can remove the Accept
header from the defaultRequest
block and register your content type for the GsonConverter
instead of using the default application/json
content type.
val client = HttpClient {
install(ContentNegotiation) {
gson(ContentType("application", "vnd.***.mobile-v8+json"))
}
}