Skip to content

Download resource which response dynamic but valid instance-length for each-block #31

@fusionseek

Description

@fusionseek

我之前浏览了历史issues,发现也有相关的问题:#17 (comment) 我不知道跟我遇到的问题是否相似?我尝试使用最新的1.0.1的SNAPSHOT还是会遇到这个问题,

taskEnd cause:ERROR realCause:The current offset on block-info isn't update correct, 4447894 != 4535848 on 2

这是我创建task的代码(kotlin)的
image

我使用的是下面这些下载链接,而且还有很多。
https://play.podtrac.com/npr-510318/npr.mc.tritondigital.com/NPR_510318/media/anon.npr-mp3/npr/upfirst/2018/04/20180406_upfirst_upfirstfacebookspecial.mp3?orgId=1&d=893&p=510318&story=600081084&t=podcast&e=600081084&ft=pod&f=510318

https://play.podtrac.com/npr-510318/npr.mc.tritondigital.com/NPR_510318/media/anon.npr-mp3/npr/upfirst/2018/03/20180329_upfirst_180329upfirst.mp3?orgId=1&d=803&p=510318&story=597870311&t=podcast&e=597870311&ft=pod&f=510318

我们做的是一款播客类的APP,会遇到各国的播客源,而且各个播客类的APP都是相同的源,所以如果别的APP是可以下载的,不应该我们这边的不能下,其实到也不是不能下,主要就是会很容易出现下面的错误

taskEnd cause:ERROR realCause:The current offset on block-info isn't update correct, 4944990 != 4949823 on 2

而且我发现,我之前使用FileDownloader-1.4.X的版本是不会遇到这类问题的,直到升到最新的FileDownloader后发现该问题出现非常多lingochamp/FileDownloader#974 ,而且在FileDownloader的ISSUES列表里也有很多用户遇到这个问题,我也照着FileDownloader的方法进行设置了:

使用单连接下载方案一

  1. 在filedownloader.properties中配置不使用独立进程: 实现FileDownloadHelper.ConnectionCountAdapter,并在里面配置需要单连接的连接缓存,当下载出现类似错误的时候,将连接加入缓存,然后重新下载。
  2. 通过FileDownloder.setupOnApplicationOnCreate注册该ConnectionCountAdapter

使用单连接下载方案二

  1. 实现FileDownloadHelper.ConnectionCountAdapter全局都该用单线程下载。

但针对上面的进行设置后,FileDownloader-1.5.+版本还是会有问题!!!

后来我看到lingochamp/FileDownloader#990 (comment) 你说在OkDownload中解决了该问题.

然后尝试使用OkDownload,但是问题好像还是存在。

我截了个LOG:

image

刚才用Charles截了一段HTTP的数据,不知道可以不可以给你一些线索

image

是一个302的地址转移,但是我用的是OKHTTP,应该当是可以自己处理302的问题的

之后我又在FileDownloader-1.4.3的版本中我又尝试下了同一个链接,正常的,试了10来次都是正常的,但是1.4.3的版本好像对okcat支持的不是很好,所以没有捉到什么有用的LOG:

之前我已经了解过你写的 TCP 窗口的文章

@Jacksgong

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions