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

Kotlin Ktor问题:无法为Get请求指定响应类型

问题解决:Ktor中client.get<String>调用报错

核心原因

你当前的HttpClient仅配置了Json内容协商处理器,但未添加字符串类型的解析支持,导致Ktor无法找到将响应转换为String的对应逻辑,从而触发参数不匹配的错误。

解决方案

方案1:添加文本解析到ContentNegotiation

修改HttpClient配置,在ContentNegotiation中加入文本解析器:

val client = HttpClient(Android)
{
    install(ContentNegotiation)
    {
        json()
        text() // 新增文本解析支持
    }
}

同时在依赖中添加文本序列化库:

var ktor_version = "2.3.8"
// 原有依赖保持不变
implementation("io.ktor:ktor-serialization-kotlinx-text:$ktor_version") // 新增依赖

方案2:直接读取响应文本(无需泛型)

如果仅需要获取字符串响应,可以跳过泛型指定,直接调用bodyAsText()方法:

val response = client.get("https://jsonplaceholder.typicode.com/posts")
val content = response.bodyAsText()

这种方式无需修改现有配置和依赖,更适合简单的字符串获取场景。

额外验证点

  • 确认已导入正确的请求扩展:import io.ktor.client.request.get
  • 确保所有Ktor依赖版本统一(你的配置中2.3.8版本一致,无问题)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:58:18