我正在调用端点以从服务器获取对象列表。使用 Retrofit2.0 + RxJava 进行 api 调用。
服务器以这样的方式实现,当列表中没有项目时,它不会返回空列表,而是返回空值和响应代码 204...
如果我使用 Observable<List<Item>>
当列表为空时,它会因为 null body 而命中 onError
如果我使用 Completable
或 Observable<Void>
我将无法处理返回的任何数据....
我考虑过通过验证错误消息并假设 if 是一个空异常来继续正常流程来处理这个问题,但我对这种 hack 并不完全满意....
有没有办法处理这种情况?
最佳答案
- 204 : No content 表示查询成功处理但没有信息返回。
您可以在 OnError 方法中使用它来获得更多可见性:
@Override
public void onError(Throwable e) {
try {
Log.e("errorL", ((HttpException) e).response().errorBody().string());
} catch (IOException e1) {
e1.printStackTrace();}}
祝你好运!
关于android - 处理空服务器响应情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54748068/