如何删除 Ktor 客户端 2.0.0 的默认 header
How to remove default header for Ktor client 2.0.0
Ktor v2.0.0 Android.
默认的 ktor header“接受”只是覆盖了我的“接受”header。
这是我初始化 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
}
但是当我检查 Charles 拦截器时,我的 headers 看起来像:
我有那个
application/json
这会覆盖我的 application/vnd...
值。
是否有任何方法可以替换默认的“接受”header?
您可以从 defaultRequest
块中删除 Accept
header 并为 GsonConverter
注册您的内容类型,而不是使用默认的 application/json
内容类型。
val client = HttpClient {
install(ContentNegotiation) {
gson(ContentType("application", "vnd.***.mobile-v8+json"))
}
}
Ktor v2.0.0 Android.
默认的 ktor header“接受”只是覆盖了我的“接受”header。
这是我初始化 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
}
但是当我检查 Charles 拦截器时,我的 headers 看起来像:
我有那个
application/json
这会覆盖我的 application/vnd...
值。
是否有任何方法可以替换默认的“接受”header?
您可以从 defaultRequest
块中删除 Accept
header 并为 GsonConverter
注册您的内容类型,而不是使用默认的 application/json
内容类型。
val client = HttpClient {
install(ContentNegotiation) {
gson(ContentType("application", "vnd.***.mobile-v8+json"))
}
}