关于使用ASIHttpRequest下载文件

时间:2010-07-27 07:58:48

标签: iphone ipad download asihttprequest

我计划使用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,视频文件等?任何限制,即,文件大小,超时?
  2. 似乎只需要设置远程文件路径“http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg”,然后它就可以使用HTTP协议远程下载所有内容。

    1. 简历功能怎么样?
    2. 通过YES / NO提供“RESUME”的设置,是否足以进行正常的恢复功能?例如,如果文件很大,请暂停,然后希望从上次恢复。

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

2 个答案:

答案 0 :(得分:4)

您同时在asi http请求组中发布了此消息,并在那里得到了答案:

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

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

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

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

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

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

答案 1 :(得分:2)

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

https://github.com/anlcan/Happy-Download