J'utilise Retrofit dans mon application pour télécharger des fichiers JSON depuis le serveur. Mais parfois quand je demande des données dupliquées du serveur il renvoie le code de réponse 208 avec le corps nul, mais dans 200 j'ai un corps de réponse qui n'est pas nul. Dans les corps nuls, la retrofit va à la méthode onFailure. Mon problème est ici! Je veux connaître la raison de l'échec de la demande (c'est parce que 208 (dans mon cas) ou d'autres choses). Comment puis-je obtenir le code de réponse dans la méthode OnFailure?Comment créer un nouveau CallBack Avec rétrofit
moi avons essayé de mettre en œuvre ma propre méthode de callback comme ceci:
public class DefaultCallback<T> implements Callback<T> {
private static final String TAG = "LOGO_SendReport";
private Callback<T> callback;
public DefaultCallback(Callback<T> callback) {
this.callback = callback;
}
@Override
public void onResponse(Call<T> call, Response<T> response) {
if (response.body() == null) {
callback.onFailure(call, new NullPointerException("Empty response"));
Log.e(TAG, "Response code is: " + response.code());
} else {
callback.onResponse(call, response);
}
}
@Override
public void onFailure(Call<T> call, Throwable t) {
Log.e(TAG, t.toString());
callback.onFailure(call, t);
}
}
Ceci est mon appel:
@POST("office/report")
Call<ResponseSendReport> sendReport(@Body SendReport pendingList);
Ceci est ma dernière méthode:
final APIService service = ServiceGenerator.createService(APIService.class, App.Auth);
Call<ResponseSendReport> call = service.sendReport(sendReport);
call.enqueue(new Callback<ResponseSendReport>() {
@Override
public void onResponse(Call<ResponseSendReport> call, Response<ResponseSendReport> response) {
Log.i("LOGO_SendReport", "code is: " + response.code());
if (response.code() == 200) {
}
@Override
public void onFailure(Call<ResponseSendReport> call, Throwable t) {
/*When Response code is 208 Goes here and I want to get
response code
if it is 208 to handle it! */
}
});
Nous vous remercions de ton aide.