我正在使用Retrofit 2.1.0
库,并使用call.enqueue
方法执行异步API调用。
CallBack
课程返回onResponse(Call call, Response response)
和onFailure (Call call, Throwable t)
。
我的问题是,假设onResponse
方法中的Response(不是response.body)对象始终是NonNull是否安全?
如果它可以为null,那么可能的场景是什么?
我在线查看了Retrofit文档,但没有明确的答案。
答案 0 :(得分:3)
它不应该为空。
您可以看到in Retrofit source code仅返回Response.success
或Reponse.error
。
您可以使用Response.isSuccessful()
检查HTTP请求是否成功。
如果Response
可能为null,那么该方法将抛出NullPointerException
。
如果存在空响应的场景,或者在解析响应时抛出了一些异常,则onFailure
would be entered。