【发布时间】:2018-11-07 17:28:07
【问题描述】:
我目前在我的 Android 项目中使用 Retrofit 2.3,最近我们使用的 API 已更新,因此它需要在所有 POST 请求的 JSON 正文中包含 "version":number。因此,假设我们需要传递 UserCredentials 对象 - 之前的请求正文只是使用 GSON 转换器序列化,看起来像这样
{"username":"myUsername", "password":"myPassword"}
现在它必须有额外的“版本”字段:
{"username":"myUsername", "password":"myPassword", "version":1}
我已经用谷歌搜索了几个小时如何设置自定义转换器工厂进行改造,但我发现的只是如何从序列化中排除某些字段。我知道我可以简单地将 "version" 字段添加到我所有的 POJO,但我发现这种方法“脏”,因为它只会在向服务器发送数据时使用。
以前有人做过类似的事情吗?
【问题讨论】:
-
你能公开你的 Retrofit API 方法声明来澄清一下你是如何发送登录数据的吗?
-
根据您的回答,您正在使用 Kotlin 或其他东西。也许您将该标签更新到您的问题中。我创建了基于 Java 的 Q&A here,以防您也想尝试应用该解决方案。