有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用单个

我用Single来获得一些关于改装成功响应的对象,我用SingleObserver来获得它。当我成功的时候,一切都很好。但是为了在响应时处理onErrorSingleObserver是可丢弃的,但是我想得到响应代码,而不是所有的错误消息。如何做到这一点

@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) 个答案

  1. # 1 楼答案

    您可以将改型接口中定义的方法的返回类型包装为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