安卓retrofit response.body()为null的问题
此时,retrofit回调中response.isSuccessful的值为false,response.code()的值为406,response.body()将会是null。后端返回的错误提示信息会被封装到response.errorBody()中,调用response.errorBody().string()函数即可得到json字符串,再使用Gson进行解析即可。2.服务端返回json数据对
·
本文主要探讨容易被忽略的几个点:
1.数据解析类被混淆。
将和Gson解析相关的实体类保持忽略混淆即可:
-keep class com.xxx.yyy.model.** {*;}
2.服务端返回json数据对应的状态码不为2xx系列。
这种情况和公司自身的业务逻辑相关,比如某公司按照业务设计,接口必须要传递access_token字段,当前端人员忽略时,后端返回 406 Not Acceptable 错误。此时,retrofit回调中response.isSuccessful的值为false,response.code()的值为406,response.body()将会是null。后端返回的错误提示信息会被封装到response.errorBody()中,调用response.errorBody().string()函数即可得到json字符串,再使用Gson进行解析即可。
更多推荐
已为社区贡献5条内容
所有评论(0)