Android版Ktor v2.0.0.

默认的ktor头"Accept"只是覆盖了我的"Accept"头.

这是我初始化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: enter image description here

我有这个

应用程序/json

这会覆盖我的application/vnd...值.

有没有办法替换默认的"Accept"标题?

推荐答案

您可以从defaultRequest块中删除Accept标题,并注册GsonConverter的内容类型,而不是使用默认的application/json内容类型.

val client = HttpClient {
    install(ContentNegotiation) {
        gson(ContentType("application", "vnd.***.mobile-v8+json"))
    }
}

Android相关问答推荐

如何在点击按钮时将字符串插入到文本字段中的光标位置?

在Android Studio中陷入了不兼容的Gradle版本的循环

Android 14(Oneui 6)中的本地推送通知行为不一致

在Android上使用XSLT文件转换XML文件

原因平滑滚动的滞后懒惰列在android jetpack compose

在不增加父行宽度的情况下添加延迟行或可滚动行

Android Studio -未显示布局预览(不推荐使用安全管理器)

Android Studio中的Kotlin版本不兼容错误:需要元数据1.9.0,但找到1.6.0

安卓喷气背包组成倒计时动画

Jetpack编写错误(java.lang.NoSuchMethodError:无接口方法startRestartGroup)

将输出写入已发布的 Android 应用程序中的日志(log)文件?

当手表与手机断开连接时,有没有办法在我的 Wear OS 应用程序中显示操作系统级别的图标?

Jetpack Compose 部分或开放侧边框

Compose Accompaniist Pager 中的 TabRow/Tab 重组问题

如何在 Compose 中使用合并的单元格创建网格视图?

android xml底部空间大

新的内部测试应用程序版本不适用于测试人员,即使它说它们是

在 Kotlin 客户端应用程序中发送 FCM 推送通知 - Firebase 云消息传递

Jetpack Compose:对角拆分卡片并将内容放入其中

Android Java Keystore 在另一台机器上损坏