Saya menggunakan Robospice di Android dengan Retrofit dan OKHttp. Semua berfungsi dengan baik dengan respons yang diteruskan kembali ke aktivitas menggunakan Robospice RequestListener. Masalahnya adalah ia hanya mengembalikan kegagalan jika koneksi terputus atau ada masalah jaringan lainnya. Jika 401 dikembalikan maka diklasifikasikan sebagai sukses tetapi dengan respons nol karena tidak dapat mengurai JSON ke dalam POJO MobileAppSetup kami.
Saat ini saya harus melakukan pemeriksaan nol pada responsnya tetapi saya tidak tahu apa alasannya apakah itu kesalahan server atau 401 yang valid.
public final class HTTPRequestListener implements RequestListener<MobileAppSetup> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Log.d("", "failure:"+ spiceException);
loginProgress.hide();
}
@Override
public void onRequestSuccess(final MobileAppSetup response) {
Log.d("","success. Data: "+response);
if(response==null)
showDialog("Error logging in", "Please check your username and password and try again.", "");
loginProgress.hide();
postLoginProcess(response);
}
}
Saya perlu meneruskan kesalahan ini ke panggilan balik onRequestFailure agar saya dapat menanganinya dengan benar. Apakah ada cara untuk menentukan kode kesalahan yang Robospice harus perlakukan sebagai kesalahan. Saya pikir ini melibatkan penambahan semacam penangan kesalahan khusus tetapi saat ini benar-benar tidak dapat menemukan solusi.