代码之家  ›  专栏  ›  技术社区  ›  Forrest

关于使用asihttpRequest下载文件

  •  4
  • Forrest  · 技术社区  · 16 年前

    我计划使用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. 简历功能怎么样?

    它通过“是/否”为“恢复”提供设置,是否足以满足正常恢复功能?例如,如果文件很大,请暂停它,然后希望从上次恢复。

    感谢您的任何输入或评论,在将其应用到我的项目中之前,我需要对此进行调查。事先谢谢!

    2 回复  |  直到 14 年前
        1
  •  4
  •   JosephH    14 年前

    您同时在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连接上,失去连接更为常见。恢复下载需要记住的两件事是: -必须将请求配置为提前恢复-如果希望在将来某个时间恢复请求,则必须将其设置为在开始下载之前恢复(有关详细信息,请参阅文档)。 -并非所有下载都可以恢复-服务器必须支持您正在下载的资源的恢复。通常,如果内容是动态生成的,则不支持恢复。

        2
  •  2
  •   aimless    14 年前

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

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

    推荐文章