3

我正在调用端点以从服务器获取对象列表。使用 Retrofit2.0 + RxJava 进行 api 调用。

服务器已经这样做了,当列表中没有项目时,它不会返回一个空列表,而是返回 null 并返回响应代码 204 ...

如果我Observable<List<Item>>在列表为空时使用 an ,它会因为 null 正文而命中 onError 如果我使用Completable或者Observable<Void>我将无法处理返回的任何数据....

我考虑过通过验证错误消息来处理这个问题,并假设 if 是一个空异常以继续正常流程,但我对这个 hack 并不完全满意......

有没有办法处理这种情况?

4

1 回答 1

0
  • 204:无内容表示查询成功,但没有返回信息。

您可以在 OnError 方法中使用它以获得更多可见性:

@Override
public void onError(Throwable e) {
    try {

          Log.e("errorL", ((HttpException) e).response().errorBody().string());

        } catch (IOException e1) {
        e1.printStackTrace();}}

祝你好运 !

于 2019-02-18T14:29:05.823 回答