处理空服务器响应案例

Posted

技术标签:

【中文标题】处理空服务器响应案例【英文标题】: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 并不完全满意......

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

【问题讨论】:

也许这会有所帮助:***.com/questions/43702427/… 【参考方案1】: 204 : 无内容表示查询成功处理但没有信息返回。

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

@Override
public void onError(Throwable e) 
    try 

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

         catch (IOException e1) 
        e1.printStackTrace();

祝你好运!

【讨论】:

以上是关于处理空服务器响应案例的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Retrofit 2 处理空响应体?

处理和响应JSON数据

Servlet以及一个简单的登录案例

服务案例|基于IT事件管理,提升业务连续性

Retrofit2 OkHttp3 响应正文空错误

上传改造图像但返回空服务器响应