android 响应类型,android – Retrofit 2 RxJava – Gson – “全局”反序列化,更改响应类型...
正如Than所說(shuō),使用攔截器的解決方案并不是那么好.我已經(jīng)設(shè)法用一個(gè)Rx變壓器來(lái)解決這個(gè)問(wèn)題.我還添加了自定義api異常,當(dāng)出現(xiàn)問(wèn)題時(shí)我可以拋出它并在onError中輕松處理它.我認(rèn)為它更強(qiáng)大.
響應(yīng)包裝器:
public class ApiResponse {
private boolean success;
private T data;
private ApiError error;
}
成功為false時(shí)返回錯(cuò)誤對(duì)象:
public class ApiError {
private int code;
}
成功為假時(shí)拋出此異常:
public class ApiException extends RuntimeException {
private final ApiError apiError;
private final transient ApiResponse> response;
public ApiException(ApiResponse> response) {
this.apiError = response.getError();
this.response = response;
}
public ApiError getApiError() {
return apiError;
}
public ApiResponse> getResponse() {
return response;
}
}
和一個(gè)變壓器:
protected Observable.Transformer,T> applySchedulersAndExtractData() {
return observable -> observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(tApiResponse -> {
if (!tApiResponse.isSuccess())
throw new ApiException(tApiResponse);
else
return tApiResponse.getData();
});
}
總結(jié)
以上是生活随笔為你收集整理的android 响应类型,android – Retrofit 2 RxJava – Gson – “全局”反序列化,更改响应类型...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux--安装yum源
- 下一篇: Java原子操作类AtomicInteg