在retrofit+Rxjava中如何取得状态码非200(出现错误)时的response里的body
来源:互联网 发布:seo实战什么意思 编辑:程序博客网 时间:2024/06/06 13:58
在retrofit+Rxjava中如何取得状态码非200(出现错误)时的response里的body
请求失败后会进入onError里面。但这个只是个Throwable类,如果直接tostring的话,我们可以看见它是只打印类返回的头部。所以看看能否向下转型,然后取出body。
这时我们故意发送一个失败请求,可以看见,打印出来的异常是retrofit.HttpException
所以现在我们对它进行向下转型,onError里面代码如下:
@Override public void onError(Throwable e) { if (e instanceof HttpException) { ResponseBody body = ((HttpException) e).response().errorBody(); try { MyLog.Error(body.string()); } catch (IOException IOe) { IOe.printStackTrace(); } } }
好了,现在打印出来的就是body了,注意是errorBody.string而不是errorBody.toString,不然它打印出来的只是地址。现在可用Gson等等各种方法了。
阅读全文
0 0
- 在retrofit+Rxjava中如何取得状态码非200(出现错误)时的response里的body
- 在retrofit+Rxjava中如何取得状态码非200(出现错误)时的response里的body
- Retrofit中@Body的使用
- 在java中如何在非servlet的普通类中获取request、response、session
- Retrofit+Rxjava的封装
- Retrofit+RxJava的使用
- 简单的RxJava+Retrofit
- Retrofit+RXJava的使用
- <body></ body >里的属性
- 如何取得字符在字符串中最后一次出现的位置?
- 如何取得一个字符串在另外一个字符串中出现的次数
- Retrofit+RxJava 优雅的处理服务器返回异常、错误
- Retrofit+RxJava 优雅的处理服务器返回异常、错误
- Okhttp3 中响应回来的数据response.body().string()
- 如何封装自己的网络框架(RxJava+okHttp+Retrofit)
- js放在head里和body里的差别
- js放在<head>里 和 <body>里的区别
- 如何去除AJAX取过值后IE的缓存/取得xmlHttp.status状态时为空/在AJAX中如何传递中文
- 和菜鸟一起学linux之我的vim简单配置
- Java 集合
- Redis集群配置和部署 spring整合redisCluster
- 鼠标事件
- AD
- 在retrofit+Rxjava中如何取得状态码非200(出现错误)时的response里的body
- 侧滑框
- 关于C++中char 型变量的地址输出
- CSS行高(line-height)及文本垂直居中原理
- Python自动化(四)插入排序
- hbase表迁移问题汇总
- html5之canvas绘制
- JEESZ-Redis分布式缓存安装和使用
- Python中的split()函数的用法