【发布时间】:2019-07-28 09:50:53
【问题描述】:
我正在尝试在没有互联网连接时缓存一些网络调用,以便稍后重试,
我通过使用Gson.toJson(...) 序列化 okhttp3.Request 对象来做到这一点
(以及其他一些信息,如时间戳等)。并且序列化工作正常,并且检查了生成的 JSON,并且所有数据都按预期存在。
但是,当我后来想用 Gson.FromJson(...) 反序列化 json 时,它会抛出一个错误:
java.lang.RuntimeException: 调用公共失败 okhttp3.RequestBody() 没有参数
我一直无法弄清楚如何解决此错误。
任何帮助将不胜感激。
[编辑] 我按如下方式构建主体:
FormBody.Builder body = new FormBody.Builder();
body.add({name}, {value});
body.add({name}, {value});
body.build();
【问题讨论】:
-
您能否展示一下您是如何构建
RequestBody和Request对象的?RequestBody是一个abstract class并且没有办法在没有参数的情况下调用constructor。可能您需要为给定类型实现自定义序列化器和反序列化器。
标签: java android gson deserialization okhttp3