在Retrofit Android中手动重试请求的好方法

我了解更新自动重试失败,但我想检查一个特定的错误.如果错误是由于某些HTTP代码造成的,我需要在修改该请求后重试该请求.

这可以使用同步调用轻松完成,但我正在进行异步调用(by
传递回调).当我在回调中收到错误时,我想重试请求 – 但是我所有的都是
RetrofitError对象(我已经丢失请求体).

我从同一个活动(并发)中有多个请求,所以我避免保存所有请求并成功取消它们.

有没有更好的方法来达到这个要求?

解决方法

如果您使用 OkHttp作为您的HttpClient并且已更新为“Retrofit”>“1.9.0”,那么您可以使用新的 Interceptor.具体来说,Application Interceptor将允许您重试并进行多次呼叫.

您可以看到example pseudocode我发布了一个类似的问题来处理过期的令牌.

另请注意,Retrofit 2.0将根据this GitHub ticket拦截器.这将消除对OkHttp的依赖,尽管我仍然建议使用它.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...