使用单

时间:2018-06-19 10:20:06

标签: java android retrofit retrofit2

我正在使用Single来获得关于改造成功响应的一些对象,而我正在使用SingleObserver来获取它。当我有onSuccess时,一切正常。但是要处理onErrorSingleObserver 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) {

        }
    });
}

1 个答案:

答案 0 :(得分:2)

您可以将Retrofit接口中定义的方法的返回类型包装到Response对象中。所以代替:

 Single<List<ContainerPropertyCombination>> getContainerPropertyCombination(String token)

您将拥有:

Single<Response<List<ContainerPropertyCombination>>> getContainerPropertyCombination(String token) 

这样,所有包含失败响应的响应都将转到onSuccess,您必须根据Response.code()来确定响应是否失败。

同一问题,但有ObservableGet response status code using Retrofit 2.0 and RxJava