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

Jag*_*uar 11 android retrofit

我知道改造会自动重试故障,但我想检查一个特定的错误.如果错误是由某个HTTP代码引起的,我需要在修改它之后重试该请求.

这可以使用同步调用轻松完成,但我正在进行异步调用(通过传递回调).当我在回调中得到错误时,我想重试请求 - 但我只有RetrofitError对象(我丢失了请求体).

我有多个请求从同一个活动(同时)进行,所以我避免保存所有请求并在成功时使它们无效.

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

the*_*ang 4

如果您使用OkHttp作为您的HttpClient并且已更新为Retrofit>=1.9.0那么您可以使用新的Interceptor。具体来说,应用程序拦截器将让您retry and make multiple calls.

您可以查看我在类似问题上发布的用于处理过期令牌的示例伪代码。

另请注意,根据此 GitHub 票证Retrofit 2.0会有。这将消除对 的依赖,但我仍然建议使用它。InterceptorsOkHttp