我正在使用Single来获得关于改造成功响应的一些对象,而我正在使用SingleObserver
来获取它。当我有onSuccess时,一切正常。但是要处理onError
,SingleObserver
hava Throwable,在响应,但我想得到响应代码,而不是所有错误消息。怎么做?
@Override
public void getContainerPropertyCombination(ContainerPropertyCombinationListener containerPropertyCombinationListener) {
formingService.getContainerPropertyCombination(storageHelper.getString(AUTH_TOKEN)).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new SingleObserver<List<ContainerPropertyCombination>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(List<ContainerPropertyCombination> containerPropertyCombinations) {
containerPropertyCombinationListener.onSuccess(containerPropertyCombinations);
}
@Override
public void onError(Throwable e) {
}
});
}
答案 0 :(得分:2)
您可以将Retrofit接口中定义的方法的返回类型包装到Response对象中。所以代替:
Single<List<ContainerPropertyCombination>> getContainerPropertyCombination(String token)
您将拥有:
Single<Response<List<ContainerPropertyCombination>>> getContainerPropertyCombination(String token)
这样,所有包含失败响应的响应都将转到onSuccess
,您必须根据Response.code()
来确定响应是否失败。
同一问题,但有Observable
:
Get response status code using Retrofit 2.0 and RxJava