Skip to content Skip to sidebar Skip to footer

Access Raw Response After Conversion

I've a backend that returns 200 HTTP code even if the request had errors: { 'error': { 'message': 'Generic error', 'code': 13000 } } Now, how can I access

Solution 1:

For error response you have to take response.errorBody() not response.body()

abstractclassAPICallback<T> implementsCallback<T> {

abstractvoidonSuccess(Call<T> call, T result);

@OverridepublicvoidonResponse(Call<T> call, Response<T> response) {
    if (response.body() != null) {

        if (response.body() instanceofAPIError) {
            // this is not working
        } else {
            onSuccess(call, response.body());
        }
    } else {
        apiError = newAPIError("Unknown error");
        bus.post(newAPIErrorEvent(apiError));
    }
}

@OverridepublicvoidonFailure(@NonNull Call<T> call, @NonNull Throwable t) {
    String message = t.getLocalizedMessage() != null ? t.getLocalizedMessage() : "Unknown error";
    apiError = newAPIError(message);
    bus.post(newAPIErrorEvent(apiError, source));
}
}

change to

abstractclassAPICallback<T> implementsCallback<T> {

    abstractvoidonSuccess(Call<T> call, T result);

    @OverridepublicvoidonResponse(Call<T> call, Response<T> response) {
        if (response.isSuccessful()) {
            if (response.body() != null) {
                onSuccess(call, response.body());

            }
        } else {
            if (response.errorBody() != null) {

                if (response.errorBody() instanceofAPIError) {

                }
            } else {
                apiError = newAPIError("Unknown error");
                bus.post(newAPIErrorEvent(apiError));
            }
        }

    }

@OverridepublicvoidonFailure(@NonNull Call<T> call, @NonNull Throwable t) {
    String message = t.getLocalizedMessage() != null ? t.getLocalizedMessage() : "Unknown error";
    apiError = newAPIError(message);
    bus.post(newAPIErrorEvent(apiError, source));
}
 }

Post a Comment for "Access Raw Response After Conversion"