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

OkHttp调用外部接口时RequestBody打印相关报错问题咨询

问题排查原因
  • 类结构语法错误:你当前把client.newCall(request).execute()这类可执行语句直接定义在类的成员层级,不属于任何方法、构造函数或初始化代码块,Java语法不支持这种写法,首先会触发编译错误。所有业务执行逻辑必须放到方法内部,比如你可以单独定义一个sendRequest()方法把这些逻辑包裹进去。
  • JSON参数格式错误:构造RequestBody的JSON字符串中混入了无效的enter code here占位符,破坏了JSON的结构正确性,会导致服务端接收参数后解析失败返回错误,也会引发RequestBody相关的处理异常。修正后的JSON串应为"{ \"to\": \"0xFd4A543c162...843da09B2\", \"amount\": \"1\" }"。
  • 受检异常未处理:OkHttp的execute()是同步方法,会抛出IOException这类受检异常,代码中既没有用try-catch块包裹捕获,也没有在方法签名上声明throws IOException,运行/编译时都会触发异常报错。
  • 认证参数配置错误:请求头中Authorization的值写为"${Access-token}",Java不会自动解析这种模板占位符,你需要替换为实际的有效访问令牌,否则服务端会返回401未授权错误。
  • RequestBody打印报错的原因:OkHttp的RequestBody底层流默认只能消费一次,如果你直接读取RequestBody的内容用于打印,会导致后续请求执行时无法再次读取流内容,抛出IllegalStateException。如果需要打印请求体,建议先把请求体内容缓存为字符串再打印,或者使用OkHttp官方的HttpLoggingInterceptor拦截器统一打印请求日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:00:02