4

我计划使用 ASIHttpRequest 从后端服务器下载文件。在采取行动之前,请在此处发布问题以了解有关此功能的更多信息。

作为给出的示例源代码:(演示下载远程 JPG 文件)

    ASIHTTPRequest *request;
request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg"]];
[request setDownloadDestinationPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"1.png"]];
[request setDownloadProgressDelegate:imageProgressIndicator1];
[networkQueue addOperation:request];

我的问题是:

  1. 它可以下载任何格式的文件,如 MP3、视频文件等?任何限制,即文件大小,超时?

好像只需要设置远程文件路径,“ http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg ”,然后它就可以通过HTTP协议远程下载所有内容。

  1. 简历功能怎么样?

它通过 YES/NO 提供“RESUME”设置,这足以满足正常的恢复功能吗?例如,如果文件很大,暂停它,然后希望从上次恢复它。

感谢您提供任何意见或意见,在将其纳入我的项目之前,我需要对此进行调查。提前致谢 !

4

2 回答 2

4

您同时在 asi http 请求组上发布了这个,并在那里得到了答案:

http://groups.google.com/group/asihttprequest/browse_thread/thread/34eced6759cb7327/47aef091a77331fd?lnk=raot#47aef091a77331fd

(如果您要同时在多个地方发布您的问题,记录下您已经得到答案的事实至少是礼貌的!)

答案是(来自 ASIHTTPRequest 作者 BenC):

1:是的,您可以下载任何大小的任何文件。我认为唯一的理论限制是设备上的可用空间量。

默认情况下,如果 10 秒内没有收到任何数据,请求将超时。您可以通过设置请求的 timeoutSeconds 属性来增加超时时间,或者使用 [ASIHTTPRequest setDefaultTimeoutSeconds:x] 更改默认值。请注意,这并不意味着下载必须在 10 秒内完成,只是它不能停留超过 10 秒。

和:

2:是的,恢复功能是处理较大下载量的好方法,尤其是在 WWAN 连接上丢失连接更为常见的情况。关于恢复下载要记住的两件事是: - 您必须提前配置要恢复的请求 - 如果您可能希望在将来某个时间点恢复请求,则必须在开始下载之前将其设置为恢复(请参阅有关详细信息的文档) - 并非所有下载都可以恢复 - 服务器必须支持恢复您正在下载的资源。如果内容是动态生成的,一般不支持恢复。

于 2010-08-01T16:15:27.327 回答
2

我在非常不可靠的网络连接上遇到了同样的大文件问题。我想出了一个解决方案,使用 ASIHttpRequest 同时下载部分内容并在完成后将它们连接起来。这是代码:

https://github.com/anlcan/Happy-下载

于 2012-01-21T22:11:05.503 回答