You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ktor 2.3客户端安装ContentNegotiation遇类型不匹配问题求助

Ktor 2.3 HTTP客户端安装ContentNegotiation插件出现类型不匹配错误

我在使用Ktor 2.3版本的HTTP客户端时,编写了以下代码:

val ktorClient =  HttpClient(CIO) {
    install(ContentNegotiation)
}

出现了如下错误:

Type mismatch.
Required:
HttpClient
Found:
RouteScopedPlugin<ContentNegotiationConfig>

我的导入语句:

import io.ktor.client.*
import io.ktor.client.engine.cio.*
import io.ktor.serialization.kotlinx.json.*
import io.ktor.server.plugins.contentnegotiation.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.serialization.json.Json
import io.ktor.client.*
import io.ktor.client.engine.cio.*
import io.ktor.client.plugins.websocket.*

依赖配置:

implementation("io.ktor:ktor-server-core:$ktor_version")
implementation("io.ktor:ktor-server-netty:$ktor_version")
implementation("io.ktor:ktor-client-core:$ktor_version")
implementation("io.ktor:ktor-client-cio:$ktor_version")

implementation("io.ktor:ktor-serialization:$ktor_version")
implementation("io.ktor:ktor-server-content-negotiation:$ktor_version")
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version")
implementation("io.ktor:ktor-client-content-negotiation:$ktor_version")

请问问题出在哪?


问题原因

你导入了服务器端的ContentNegotiation插件,而不是客户端版本。从导入语句里的io.ktor.server.plugins.contentnegotiation.*可以看出,这个包属于Ktor服务器模块,和客户端插件类型不兼容,直接导致了类型匹配错误。

解决方案

  1. 修正导入语句:移除服务器端的ContentNegotiation导入,替换为客户端版本:

    // 删除这行服务器端导入
    // import io.ktor.server.plugins.contentnegotiation.*
    // 添加客户端插件的导入
    import io.ktor.client.plugins.contentnegotiation.*
    
  2. 完整正确的代码示例:

    import io.ktor.client.*
    import io.ktor.client.engine.cio.*
    import io.ktor.client.plugins.contentnegotiation.*
    import io.ktor.serialization.kotlinx.json.*
    import kotlinx.serialization.json.Json
    
    val ktorClient = HttpClient(CIO) {
        install(ContentNegotiation) {
            json(Json {
                prettyPrint = true
                isLenient = true
            })
        }
    }
    

你的依赖配置已经包含了客户端所需的ktor-client-content-negotiation,无需额外修改。

内容的提问来源于stack exchange,提问作者jpganz18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:35:20