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

Moshi报Required value missing错误时如何查看接口返回的原始数据

问题描述

使用新API时经常遇到如下Moshi序列化报错:

com.squareup.moshi.JsonDataException: Required value 'X' (JSON name 'x') missing at $
        at com.squareup.moshi.internal.Util.missingProperty(Util.java:649)
        at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:103)
        at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:41)
        at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:46)
        at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:27)
        at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)
        at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:153)
        at okhttp3.RealCall$AsyncCall.run(RealCall.kt:138)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)

需要获取接口返回的原始数据,判断是接口确实缺失字段x,还是返回了其他异常结构,之前尝试配置OkHttp日志拦截器未生效,寻求可靠的获取原始响应的方法。

解决方案
  • 方案1:使用Web调试代理工具(最直接无侵入)
    使用Charles Proxy这类本地代理工具抓包是最直接的解决方案,不需要修改任何项目代码,即可完整捕获本次请求的所有原始信息:包括请求头、请求参数、响应头、原始响应体,不受项目内部序列化逻辑、拦截器配置错误的影响。
    操作逻辑:电脑和移动端设备连接同一局域网,将移动端的代理指向电脑的IP+Charles监听端口,安装并信任Charles的SSL证书后,即可直接查看对应API的完整返回内容。

  • 方案2:修正OkHttp日志拦截器配置(适合不想额外安装工具的场景)
    日志拦截器不生效大多是因为拦截器顺序错误、日志级别配置不对,正确配置方式如下:
    首先确保引入了正确的日志拦截器依赖,然后在构建OkHttpClient实例时,将HttpLoggingInterceptor设置为网络拦截器,并且将日志级别设为BODY,示例代码:

val loggingInterceptor = HttpLoggingInterceptor().apply {
    // 必须设置为BODY级别才能打印完整的请求、响应内容
    level = HttpLoggingInterceptor.Level.BODY
}
val okHttpClient = OkHttpClient.Builder()
    // 注意要放在其他自定义拦截器之前,避免打印被其他拦截器修改后的数据
    .addNetworkInterceptor(loggingInterceptor)
    // 其余配置:超时时间、其他自定义拦截器等
    .build()

配置完成后重新运行项目,即可在Logcat中看到对应请求的完整原始响应内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:39:02