OkHttp 和 Retrofit 无限 Post 请求在后台

Posted

技术标签:

【中文标题】OkHttp 和 Retrofit 无限 Post 请求在后台【英文标题】:OkHttp and Retrofit infinite Post request in background 【发布时间】:2020-08-29 07:43:06 【问题描述】:

在随机设备上,POST 请求卡住并执行无限循环,这可以在后端日志中看到。

从日志可以看出,用户在不知道它正在循环网络请求的情况下继续使用应用程序。

有些用户甚至联系我们,因为我们的应用在后台使用了大量的移动数据。

我为OkHttp找到了这个problem,但是将.retryOnConnectionFailure()设置为false时它应该消失了,但它不起作用。

更新库到最新版本也存在问题,因为我们的 app min sdk 为 16,并且由于 版本3.12.1,库仅支持 21+。最新版本是4.6.0

有什么建议吗?

【问题讨论】:

【参考方案1】:

升级到适用于 API 16 的 3.12.11 并对此进行了修复。 https://square.github.io/okhttp/changelog_3x/#version-31211

【讨论】:

今天早上完成了,谢谢,将等待结果。如果可行,我会接受答案。 在使用最新的 OkHttp 3.12.11 版本更新后直接有一个循环用户....这个问题很烦人,无法复制,后端人员为此疯狂 想在不使用这个库的情况下进行发布请求 是啊,真麻烦! 4.6.x 分支中可能有另一个修复程序来向后移植。

以上是关于OkHttp 和 Retrofit 无限 Post 请求在后台的主要内容,如果未能解决你的问题,请参考以下文章

使用 retrofit2 和 Okhttp 获取 Api

Okhttp + Retrofit @Body 请求 - 传输编码:添加了分块

Retrofit/OkHTTP/RxJava 间歇性 InterruptedIOException

OkHTTP、Retrofit 中文乱码解决方法

与改造一起使用时,OkHttp 不会重定向 POST 请求

Android 初识Retrofit