【发布时间】:2016-09-28 05:38:22
【问题描述】:
public abstract class RetrofitBaseCallBack<T> implements Callback<T> {
@Override
public void onResponse(Call<T> call, Response<T> response) {
int responseCode = response.code();
if (responseCode == Constants.ServerResponse.Code.STATUS_OK
|| responseCode == Constants.ServerResponse.Code.STATUS_CREATED_SUCCESS
|| responseCode == Constants.ServerResponse.Code.STATUS_IN_PROGRESS
|| responseCode == Constants.ServerResponse.Code.STATUS_NO_CONTENT
|| responseCode == Constants.ServerResponse.Code.STATUS_ACCEPTED) {
// i want to navigate to onResponseSuccess when "success":true
onResponseSuccess(call, response);
} else {
//i want to navigate to onResponseFailure when "success":false
onErrorResponse(call, response);
}
}
}
@Override
public void onFailure(Call<T> call, Throwable t) {
onRetrofitBaseCallBackFailure(call, t);
}
public abstract void onResponseSuccess(Call<T> call, Response<T> response);
public abstract void onResponseFailure(Call<T> call, Response response, String message);
public abstract void onRetrofitBaseCallBackFailure(Call<T> call, Throwable t);
}
我通过扩展改造回调来上课。我想将响应解析为字符串。在我的例子中,每个响应都会获得这种类型的 JSON 对象。在成功响应的情况下:
{
"success": true,
"abc": {
"a": 0.15,
"b": "Better Exchange Rate",
}
}
如果失败响应
{
"success": false,
"abc": {
"a": 0.15,
"b": "Better Exchange Rate",
}
}
如何将响应正文转换为 JsonObject 以便我可以检查字段 "success": 并导航相应的方法,即 onResponseSuccess(Call call, Response response) 以防万一成功时,onResponseFailure(Call call, Response response, String message) 失败时
【问题讨论】: