我计划使用 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];
我的问题是:
- 它可以下载任何格式的文件,例如MP3、视频文件等?有任何限制,例如文件大小、超时吗?
好像只需要设置远程文件路径“http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg”,就可以通过HTTP协议(protocol)远程下载所有内容。
- 恢复功能怎么样?
它通过 YES/NO 提供“RESUME”设置,这对于正常恢复功能来说足够了吗?例如,如果文件很大,则暂停它,然后希望从上次开始恢复。
感谢您的任何意见或评论,在将其采用到我的项目中之前,我需要对此进行调查。提前致谢!
最佳答案
您同时在 asi http 请求组上发布了此内容,并在那里得到了答案:
(如果您要同时在多个地方发布您的问题,至少有礼貌的是记录下您已经得到答案的事实!)
答案是(来自 ASIHTTPRequest 作者 BenC):
1:是的,您可以下载任何大小的任何文件。我认为唯一的理论限制是设备上的可用空间量。
默认情况下,如果10秒内没有收到任何数据,请求就会超时。您可以通过设置请求的 timeoutSeconds 属性来增加超时期限,或使用 [ASIHTTPRequest setDefaultTimeoutSeconds:x] 更改默认值。请注意,这并不意味着下载必须在 10 秒内完成,只是下载不能卡住超过 10 秒。
和:
2:是的,恢复功能是处理较大下载的好方法,特别是在 WWAN 连接上,丢失连接的情况更为常见。关于恢复下载需要记住的两件事是: - 您必须提前配置要恢复的请求 - 如果您可能想在将来的某个时间点恢复请求,则必须在开始下载之前将其设置为恢复(有关详细信息,请参阅文档) - 并非所有下载都可以恢复 - 服务器必须支持您正在下载的资源的恢复。一般情况下,如果内容是动态生成的,则不支持断点续传。
关于iphone - 关于使用 ASIHttpRequest 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3341658/