【问题标题】:Handle null server response cases处理空服务器响应案例
【发布时间】:2019-07-11 21:12:35
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: android nullpointerexception retrofit2 onerror server-response


【解决方案1】:
  • 204 : 无内容表示查询成功处理但没有信息返回。

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

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

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

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

祝你好运!

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2011-11-04
    相关资源
    最近更新 更多