使用Retrofit 2.0 Observables时出现错误时如何获取Response主体

阿奇

我正在使用Retrofit 2.0进行返回Observable的api调用。当通话顺利并且响应如预期时,一切都很好。现在,我们有一个错误响应,它抛出一个onError。我想读取响应正文,即使它是一个错误。

例子

@FormUrlEncoded
@POST("tokenLogin")
Observable<LoginResponse> loginWithToken(
        @Field("token") String pin
);

当请求和响应有效时,我可以观察到正确的消息,并且在出现错误时按预期方式调用onError。

正确回应:

{ "status" : "authenticated" }

Observable将其转换为正确的Observable,我可以将响应读取为LoginResponse对象。

现在,错误响应如下:

{ "errorMessage" : "You need to take some xyz action" }

我想阅读该错误响应并将消息显示给用户。我该怎么做呢?

C队

只需检查throwable是否是HttpException的实例,然后就可以访问改造响应

if (e instanceof HttpException) {
    ResponseBody body = ((HttpException) e).response().errorBody();
    ...
}

然后,您可以使用转换器反序列化它(或自己完成)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Retrofit2下载文件?

来自分类Dev

如何测试使用Retrofit和Dagger2的REST API

来自分类Dev

如何使用RxAndroid和Retrofit 2检索响应正文?

来自分类Dev

使用PUT时RetroFit 2格式错误的URL

来自分类Dev

如何使用RxJava处理Retrofit 2中的网络错误

来自分类Dev

如何使用Retrofit2创建JSON对象数组的查询

来自分类Dev

使用Retrofit 2上传文件

来自分类Dev

使用Retrofit 2从响应JSON获取单个JSON属性值

来自分类Dev

如何在Retrofit 2中使用Google Agera

来自分类Dev

如何使用Retrofit2 + RxJava添加授权标头

来自分类Dev

如何使用Retrofit 2获得API请求/响应时间

来自分类Dev

如何使用Retrofit2和GSON从响应中获取特定的JSON数组?

来自分类Dev

如何使用Retrofit2来获取具有邮政编码JSON正文的地址列表

来自分类Dev

如何使用Retrofit2处理Kotlin中的500错误并显示详细消息?

来自分类Dev

如何在Kotlin Android上使用Retrofit2,RxJava2读取JSON文件

来自分类Dev

无法使用Retrofit2获取数据

来自分类Dev

Volley到Retrofit2-如何使用Retrofit2进行字符串请求?

来自分类Dev

如何使用RxJava处理Retrofit 2中的网络错误

来自分类Dev

如何在Retrofit 2中使用Google Agera

来自分类Dev

使用Retrofit2和RxJava获取分页URL

来自分类Dev

如何在Android Studio中使用Retrofit2获取JSON日志?

来自分类Dev

如何在Retrofit2中使用jsonapi?

来自分类Dev

使用映射函数时出现错误:“ValueError:字典更新序列元素 #0 的长度为 1;需要 2”

来自分类Dev

使用 Retrofit 2 的应用程序在将数据发布到 Mysql 时崩溃

来自分类Dev

Resources$NotFoundException 使用 RetroFit 2 调用 Rest API 时

来自分类Dev

如何在 Retrofit 2 中对请求使用注解?

来自分类Dev

如何使用 Retrofit2 @POST

来自分类Dev

如何使用 Retrofit2 编写 POJO 以从 JSON 获取对象内的特定数组?

来自分类Dev

需要使用retrofit2从api返回的响应中获取字符串

Related 相关文章

  1. 1

    如何使用Retrofit2下载文件?

  2. 2

    如何测试使用Retrofit和Dagger2的REST API

  3. 3

    如何使用RxAndroid和Retrofit 2检索响应正文?

  4. 4

    使用PUT时RetroFit 2格式错误的URL

  5. 5

    如何使用RxJava处理Retrofit 2中的网络错误

  6. 6

    如何使用Retrofit2创建JSON对象数组的查询

  7. 7

    使用Retrofit 2上传文件

  8. 8

    使用Retrofit 2从响应JSON获取单个JSON属性值

  9. 9

    如何在Retrofit 2中使用Google Agera

  10. 10

    如何使用Retrofit2 + RxJava添加授权标头

  11. 11

    如何使用Retrofit 2获得API请求/响应时间

  12. 12

    如何使用Retrofit2和GSON从响应中获取特定的JSON数组?

  13. 13

    如何使用Retrofit2来获取具有邮政编码JSON正文的地址列表

  14. 14

    如何使用Retrofit2处理Kotlin中的500错误并显示详细消息?

  15. 15

    如何在Kotlin Android上使用Retrofit2,RxJava2读取JSON文件

  16. 16

    无法使用Retrofit2获取数据

  17. 17

    Volley到Retrofit2-如何使用Retrofit2进行字符串请求?

  18. 18

    如何使用RxJava处理Retrofit 2中的网络错误

  19. 19

    如何在Retrofit 2中使用Google Agera

  20. 20

    使用Retrofit2和RxJava获取分页URL

  21. 21

    如何在Android Studio中使用Retrofit2获取JSON日志?

  22. 22

    如何在Retrofit2中使用jsonapi?

  23. 23

    使用映射函数时出现错误:“ValueError:字典更新序列元素 #0 的长度为 1;需要 2”

  24. 24

    使用 Retrofit 2 的应用程序在将数据发布到 Mysql 时崩溃

  25. 25

    Resources$NotFoundException 使用 RetroFit 2 调用 Rest API 时

  26. 26

    如何在 Retrofit 2 中对请求使用注解?

  27. 27

    如何使用 Retrofit2 @POST

  28. 28

    如何使用 Retrofit2 编写 POJO 以从 JSON 获取对象内的特定数组?

  29. 29

    需要使用retrofit2从api返回的响应中获取字符串

热门标签

归档