当网络连接与Rx-java一起使用时,有没有重试改进的http请求?
这是我的请求方法
public DisposableObserver<List<Photo>> getNewPhotos(final int page,
int perPage,
String orderBy,
ObservableTransformer<List<Photo>, List<Photo>> observableTransformer,
final Callback<List<Photo>> callBack) {
return photoService.getPhotos(page, perPage, orderBy)
.compose(observableTransformer)
.retryWhen(new Function<Observable<Throwable>, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(Observable<Throwable> throwableObservable) throws Exception {
return null;
}
})
.onErrorResumeNext(new Function<Throwable, ObservableSource<? extends List<Photo>>>() {
@Override
public ObservableSource<? extends List<Photo>> apply(Throwable throwable) throws Exception {
return Observable.error(throwable);
}
})
.subscribeWith(new DisposableObserver<List<Photo>>() {
@Override
public void onNext(List<Photo> value) {
callBack.onSuccess(value);
}
@Override
public void onError(Throwable e) {
callBack.onError(new NetworkError(e));
}
@Override
public void onComplete() {
}
});
}
我想也许我可以在retryWhen()方法中做点什么。 我希望改装触发互联网连接,并在连接恢复时重试最后一个请求。 我知道传统的重试方式,但我认为在Rx-java中必须有一个方法或东西来处理这个问题。 如果有人知道与我分享它的好处。