2017-03-07 10 views
0

私はRetrofit 2.1.0ライブラリを使用しており、非同期APIコールを行うにはcall.enqueueメソッドを使用しています。Retrofit2 onResponseメソッドにNull応答がありますか?

CallBackクラスは、onResponse(Call call, Response response)onFailure (Call call, Throwable t)を返します。

私の質問は、onResponseメソッドのResponse(not response.body)オブジェクトが常にNonNullであると想定するのは安全でしょうか?

nullでもかまいませんが、どのようなシナリオが考えられますか?

オンラインとRetrofitのドキュメントを見ましたが、明確な回答はありませんでした。

+0

リクエストにエラーがある場合はnullです。次の回答をご覧ください。 http://stackoverflow.com/questions/42527551/converting-json-response-to-pojo-with-retrofit-using-jsend-format/42625457#42625457 –

+0

@ArpanSharma 'body()'または 'errorBody()'はnullでもかまいません。質問は 'Response'パラメータ –

+0

で質問しました。それはできません。答えは正しいです。 –

答えて

2

nullであってはなりません。

in Retrofit source codeは、Response.successまたはReponse.errorが返されることがわかります。

Response.isSuccessful()を使用してHTTP要求が成功したかどうかを確認できます。

Responseがnullである可能性がある場合、そのメソッドはNullPointerExceptionをスローします。

nullレスポンスのシナリオがある場合、またはレスポンスの解析時に例外がスローされた場合は、onFailure would be enteredです。

+0

これは明確で正確です。答えをありがとう! – Akshay

関連する問題