以下为我的代码
@POST("/hospital/department/list")
Observable<ResponseBody> list(@Body Department department);
public Observable<String> list(Department department) {
return departmentAPI.list(department)
.flatMap((Function<ResponseBody, ObservableSource<String>>) responseBody -> Observable.just(responseBody.string()));
}
private void initDepOptions() {
final ProgressDialog progressDialog = new ProgressDialog(getContext());
depDataManager.list(tDepartment)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(disposable -> {
progressDialog.setMessage(LOADING_MESSAGE);
progressDialog.show();
})
.doOnComplete(() -> progressDialog.dismiss())
.subscribe(new RxSubscriber<String>() {
@Override
public void onNext(String s) {
ApiResponse response = GsonParser.fromJSONObject(s, ApiResponse.class);
if (response.success()) {
transform2DepartmentList(response.data);
} else {
Toasty.error(getContext(), response.message, Toast.LENGTH_LONG, true).show();
}
}
});
}
我准备用其来获取服务端 json 数据并反序列化,可是这时候出现了一个问题,subscribe 中的 onNext 方法并未执行...
ps:
RxSubscriber
public class RxSubscriber<T> extends DisposableObserver<T> {
@Override
public void onNext(@NonNull T t) {
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
}