Android: 让 OkGo 3 不再拦截 5xx 错误

  OkGo 2 的时候如果接口爆炸可以从 onError() 中获取到返回的信息,但是 OkGo 3 后认为 5xx 是不重要的,直接 return 且 log 不完整,只能每次出错都得手动调试一次找出具体错误。
  最近写接口的不知道是不是假酒喝太多,基本上 10 个接口 9 个爆炸,改了接口不改文档。为了省口气,需要 OkGo 3 在遇到 5xx 的时候依然返回数据,在 WebView 上展现出来,然后再拿着测试机去抽人。
  注意,修改后如果不是网络有问题,只要服务器最终有回应 (没有超时),都会走 onSuccess()。而如果要 throw 它的话,不管最终请求是否成功,都会走 onError()。感觉只有 3.x 才有这个问题,2.x 没有。

  步骤:
  1. 不要使用 maven,直接去 GitHub 把源码下下来 import 进去;
  2. 修改 BaseCachePolicy.java 中:
  3. 自定义 Callback 或直接使用 AbsCallback,覆写以下方法:
  然后即使服务器爆炸,你也可以在 onSuccess() 拿到 body 啦。