Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用单个_Java_Android_Retrofit_Retrofit2 - Fatal编程技术网

Java 使用单个

Java 使用单个,java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,我使用Single来获得一些关于改装成功响应的对象,我使用SingleObserver来获得它。当我成功的时候,一切都很好。但要处理OneError,SingleObserver在响应时是可以丢弃的,但我想得到响应代码,而不是所有的错误消息。如何做到这一点 @Override public void getContainerPropertyCombination(ContainerPropertyCombinationListener containerPropertyCombinationLi

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

@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) {

        }
    });
}

您可以将改装接口中定义的方法的返回类型包装到对象。因此,不是:

 Single<List<ContainerPropertyCombination>> getContainerPropertyCombination(String token)
你将有:

Single<Response<List<ContainerPropertyCombination>>> getContainerPropertyCombination(String token) 
这样,包括失败响应在内的所有响应都将转到onSuccess,您必须根据Response.code决定响应是否失败

同样的问题,但可以观察到: