背景:
我正试图用进度回调将我的旧下载代码从Android中的AsyncTask和HttpUrlConnection迁移到使用Regetfit。但是,我注意到registfit/okhttp默认情况下不提供这样的回调。
我进行了大量搜索,找到了一些方法,包括okhttp的官方解决方案,它是由拦截器和自定义响应体完成的。然而,它们都没有真正满足我的需求。
我想要的是:
这段代码的问题是回调实际上是附加到拦截器上的,这使得它被附加到okhttp客户机,而我需要的是为每个请求应用不同的回调对象。(不同的android ui元素更改等)
我尝试过:
据我所知,单个请求由单个refition调用接口实例标记,所以如果我想实现每个请求的回调,它必须被附加到调用实例或RequestBody实例。
不幸的是,我没有找到任何方法在okhttp拦截器中获得refitfit调用实例。我也不能将自定义回调对象附加到它。
至于自定义RequestBody方法,它似乎是可行的。但是如果涉及到GET请求,它又不可用了,因为不能使用Reportfit设置RequestBody。
有什么优雅的方法可以实现这一点吗?我所说的“优雅”是指我不喜欢自己以任何形式维护请求->回调映射,如果不是非常谨慎,这甚至可能导致内存泄漏。
您可能能够找到具有@tag
和/或调用
的内容。标记允许您在您的改装请求上定义一个参数,该参数将在拦截器中可用。调用与此类似,但不需要额外的paramter。
问题内容: 我正在下载文件,但是对于大文件,我每次都需要检查磁盘上文件的大小,因为我无法以百分比形式显示进度,并且我也想知道下载速度。我该怎么做呢?这是我的代码: 我认为一种方法是在循环中每次读取文件并根据标头计算进度百分比。但是对于大文件(大约500MB),这将再次成为问题。还有其他方法吗? 问题答案: 参见此处:Python进度栏和下载 我认为代码将是这样,它应该显示 自开始以来 的 平均速度
我向服务器发出POST请求以生成CSV文件,POST请求的响应是我要写入文件的CSV数据。 我永远不知道CSV文件的大小(它可以是10MB,100MB或1000MB),因此没有内容长度的头。 我已经编写了一个函数,可以下载并向服务器发出POST请求,生成CSV文件并将响应写入CSV文件。然而,我正在努力与进步吧。 如何添加进度条?
下面的代码应该随机创建两个整数,然后显示给需要将这两个数字除以的用户;但是,当我尝试将答案或响应更改为双倍时,它不起作用。如果您按原样运行它并得到一个诸如1/5之类的问题,那么答案最终为0,因为它是一个整数;5/4最终为1也是如此。
我试图下载一个二进制文件,并将其原始名称保存在磁盘上(linux)。 有什么想法吗?
这是POST请求的实际图像[使用Android改造上传图像,如何使用改造进行多部分请求][2] 我使用翻新发送了多个图像文件和字符串数据,但在服务器端缺少字符串数据 我的保存注册 API
我试图下载和保存图像从网络使用python的模块。 以下是我使用的(工作)代码: 以下是使用