lingochamp / FileDownloader

Multitask、MultiThread(MultiConnection)、Breakpoint-resume、High-concurrency、Simple to use、Single/NotSingle-process
Apache License 2.0
11.04k stars 2.2k forks source link

Support FTP protocol #188

Open Ernest-su opened 8 years ago

Ernest-su commented 8 years ago

这个下载引擎不支持FTP下载?

Jacksgong commented 8 years ago

FileDownloader并为对FTP协议的请求做特殊的处理。这块应该是okhttp handle的。

我试了下,ftp://url.to/file.iso 这个链接原本就是拒绝访问的。

建议处理方案:

如果是出现错误,具体看看error中的Throwable描述是什么,如果你实在找不到原因,贴出来链接与Throwable,我给你看看。

Ernest-su commented 8 years ago

我实际下载的URL是 ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-dvd1.iso 错误信息是 D/FileDownloadTask: error() e = [java.lang.IllegalArgumentException: unexpected url: ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-dvd1.iso]

Jacksgong commented 8 years ago

我找到原因了,具体原因是因为,FileDownloader进行创建请求的时候,调用 Request.Builder#url,而里面直接调用了 okhttp3.HttpUrl#parse,而HttpUrl只支持Http与Https,因此这里直接解析失败。

我抽空的时候研究下,给出你解决方案。

Jacksgong commented 8 years ago

我看了下,okHttp应该是只支持Http与Https协议,这边关注下这个issue: #158,多谢你的Issue,这边在处理 #158 Issue的时候,会对这个问题进行解决。