首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对每个请求进行改造,接受下载进度回调?

如何对每个请求进行改造,接受下载进度回调?
EN

Stack Overflow用户
提问于 2020-03-05 15:22:50
回答 1查看 184关注 0票数 1

背景:

我试图通过从安卓系统中的AsyncTask和HttpUrlConnection进行进度回调,将我的旧下载代码迁移到使用改造。但是,我注意到默认情况下,retrofit/okhttp不提供这种回调。

我已经做了大量的搜索,并找到了一些方法,包括官方的okhttp 解决方案,这是由拦截器和自定义ResponseBody完成的。然而,它们都没有真正满足我的需要。

我想要的:

这段代码的问题是回调实际上是附加到拦截器上的,这使得它附加到了okhttp客户端,而我需要的是为每个请求应用不同的回调对象。(不同的android元素更改等等)。

我尝试过的:

据我所知,单个请求被标记为单个更新的调用接口实例,因此如果我想实现每个请求回调,则必须将其附加到调用实例或RequestBody实例。

不幸的是,我没有找到在okhttp拦截器中获取更新调用实例的任何方法。我也不能将自定义回调对象附加到它。

至于自定义RequestBody方法,它似乎是可行的。但是如果是GET请求,它就不再可用了,因为不能使用改造来设置RequestBody。

有什么优雅的方法来实现这一点吗?所谓“优雅”,我的意思是我不喜欢自己以任何形式维护请求->回调映射,这甚至可能导致内存泄漏,即使不是非常小心。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 02:58:10

您可能可以在@Tag和/或Invocation中找到一些东西。标签允许您在重定向请求上定义一个参数,该参数将在拦截器中可用。调用类似,但它不需要额外的参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60548708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档