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

使用Retrofit+Kotlin拉取API数据,Insomnia正常但请求失败如何解决?

问题原因

报错为Gson解析时类型不匹配导致的,日志中Invalid double: "6069dea870f35f0f90242f4a"的字符串是接口返回的_id字段值,你在Product数据类中将_id的类型定义为Int,但接口返回的_id是字符串类型的MongoDB ObjectId,Gson尝试把字符串转为数字时抛出异常。

修正方案

将Product数据类里的_id字段类型从Int修改为String即可:

data class Product (
    @SerializedName("_id")
    var _id: String, // 此处将Int改为String

    @SerializedName("name")
    var name: String,

    @SerializedName("price")
    var price: Number,

    @SerializedName("productImage")
    var productImage: String
)

可选优化点

  • 数据类字段优先用val而非var,接口返回的数据一般不需要二次修改,不可变类型更安全
  • 未用到的JSON字段不需要在数据类中声明,Gson会自动忽略
  • 可以给ApiService的方法加上suspend关键字,用协程调用替代Callback回调,代码更简洁易维护

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:24:07