Retrofit @Body 注解踩坑

版权声明: https://blog.csdn.net/ShadowySpirits/article/details/80459805

0x00 引子

最近开发中遇到了一个玄学错误,表现为 APP 直接 run 到手机上一切正常,但是build apk 无法正常发送post请求

//log:Unable to convert XXXXX to RequestBody

经排查是 Retrofit 的 @Body 注解的使用问题

0x01 @Body 注解介绍

@body 可以把 模型类 或者 Map 通过设置的 Converter 转换为 json 并放到放到请求体中(@QueryMap 是直接拼接到 url 后面)

  • 源码注释:
    @body源码注释

0x02 问题说明

之前尝试过网上各种版本的方案,但是都没有解决,然后在文档中看到这样一句话:
RequestObject
尝试把模型类的属性声明为 public ,然后问题解决

0x03 总结

使用 @Body 注解来将模型类转化成 json 时需要注意 模型类的属性要声明成 public 或者 添加 getter 方法

PS. 并没有搞懂为什么直接 run 的时候不会触发这个错误,留待以后研究或者请路过的 dalao 指点下

猜你喜欢

转载自blog.csdn.net/ShadowySpirits/article/details/80459805