2017-03-07 46 views
0

我正在使用Retrofit 2.1.0庫,並使用call.enqueue方法來執行異步API調用。Can Retrofit2 onResponse方法是否有空響應?

CallBack類返回onResponse(Call call, Response response)onFailure (Call call, Throwable t)

我的問題是,是否可以安全地假設onResponse方法中的Response(not response.body)對象始終爲NonNull?

如果它可以爲null,可能的情況是什麼?

我在網上查看和翻新文檔,但沒有明確的答案。

+0

如果請求有錯誤,它可以爲null。查看以下答案 http://stackoverflow.com/questions/42527551/converting-json-response-to-pojo-with-retrofit-using-jsend-format/42625457#42625457 –

+0

@ArpanSharma'body()'或'errorBody()'可以爲null。提問的問題是「響應」參數 –

+0

沒問題,不是,答案是對的。 –

回答

2

它不應該爲空。

你可以看到in Retrofit source code,你只能得到Response.success或返回Reponse.error

您可以使用Response.isSuccessful()檢查HTTP請求是否成功。

如果Response可能爲空,則該方法將拋出NullPointerException

如果有一個空響應的場景,或解析響應時拋出一些異常,那麼onFailure would be entered

+0

這是清楚而準確的。感謝你的回答! – Akshay

相關問題