我计划使用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];
我的问题是:
似乎只需要设置远程文件路径“http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg”,然后它就可以使用HTTP协议远程下载所有内容。
通过YES / NO提供“RESUME”的设置,是否足以进行正常的恢复功能?例如,如果文件很大,请暂停,然后希望从上次恢复。
感谢您提供任何意见或建议,我需要在将此问题纳入我的项目之前进行调查。提前谢谢!
答案 0 :(得分:4)
您同时在asi http请求组中发布了此消息,并在那里得到了答案:
(如果你要在同一时间在多个地方发布你的问题,那么记录你已经得到答案的事实至少是礼貌的!)
答案是(来自BenC,ASIHTTPRequest作者):
1:是的,您可以下载任何大小的文件。我认为唯一的理论限制是您在设备上拥有的可用空间量。
默认情况下,如果请求在10秒内未收到任何数据,则会超时。您可以通过设置请求的timeoutSeconds属性来增加超时时间,或者使用[ASIHTTPRequest setDefaultTimeoutSeconds:x]更改默认值。请注意,这并不意味着下载必须在10秒内完成,只是它必须不会卡住10秒以上。
和
2:是的,恢复功能是处理更大下载的好方法,特别是在失去连接的WWAN连接上更常见。关于恢复下载要记住的两件事是: - 您必须事先配置要恢复的请求 - 如果您可能希望在将来某个时间点恢复请求,则必须将其设置为在开始下载之前恢复(有关详细信息,请参阅文档) - 并非所有下载都可以恢复 - 服务器必须支持恢复正在下载的资源。通常,如果动态生成内容,则不支持恢复。
答案 1 :(得分:2)
我遇到了与非常不可靠的网络连接上的大文件相同的问题。我已经提出了一个解决方案,使用ASIHttpRequest同时下载部分内容并在完成后连接它们。这是代码: