java返回400,Retrofit+RxJava网络请求失败,报400错误,但返回的错误信息包含(json字符串)...

在进行网络请求的时候,有时后台会直接报400,但是将完整的接口放到三方postman中提示的是:

050d8f514c2cf48c6bc054321cc236e2.png

后台返回了json数据,经过查找,找到拿到json数据的方法:

首先这个网络请求失败返回的结果肯定是到了onError()里面了,在onError()方法里返回了一个Throwable对象,先判断这个Throwable对象是否属于HttpException(必须看一下是否在retrofit2.adapter.rxjava包下,开始我的不是在这个包下,所以错误,改过来就好了),因为就算是json解析异常等错误也会在onError()这个方法里面,在HttpException中code,message,response,message的解释是HTTP status message,也就是网络请求状态的信息,和code差不多,重要的是response,这是一个Response对象,这个对象里面有一个ResponseBody对象,也就是errorBody,ResponseBody类中有个string()方法,就是这个方法,可以直接输出请求失败情况下返回的json字符串(在解析)。 @Override public void onError(Throwable e) { dismissProgressDialog(); Log.e(TAG, "onError: ", e); if (e instanceof HttpException) { HttpException httpException = (HttpException) e; try{ String error = httpException.response().errorBody().string(); BaseErrorBean bean = new Gson().fromJson(error , BaseErrorBean.class); ToastUtil.showLongToast(bean.getError()); }catch(IOException e1) { e1.printStackTrace(); } }else { ToastUtil.showLongToast("请求失败"); } }

打印出error字符串即可。

感谢下面的网址给的提示:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值