当我的http(204)在执行阻塞时为空时,我得到一个运行时异常 它似乎无法反序列化null /空http响应。 有没有办法在没有例外的情况下做到这一点? 由于我使用的是spring,它将我的事务标记为回滚,我想避免这种情况,因为获取空体并不是错误。
Single<myobject> cp = cpApi.findOne(myparam);
try {
return cp.blockingGet();
} catch(RuntimeException t) {
throw new RuntimeException(t.getMessage());
}
java.lang.ClassCastException:java.lang.String无法强制转换为 com.myproject.model.myobject at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:59) 在 io.reactivex.internal.operators.observable.ObservableSingleSingle $ SingleElementObserver.onComplete(ObservableSingleSingle.java:111) 在 retrofit2.adapter.rxjava2.BodyObservable $ BodyObserver.onComplete(BodyObservable.java:66) 在 retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:48)
答案 0 :(得分:0)
我明白了。不是最优雅的解决方案,但它有效。
myobject notfound = new myobject();
Single<myobject> cp = cpApi.findOne(myparam);
myobject r = cp.onErrorReturnItem(notfound).blockingGet();
if(r.equals(notfound))
return null;
return r;