NSURLConnection(下载超过500M的大文件)

时间:2012-03-07 09:53:10

标签: iphone ios ipad

我想从服务器下载一个大文件(> 500MB)到我的应用程序。我使用NSURLConnection,如果网络非常好,那就很好用。但有时我试图下载500MB文件,但只有网络不是很好才下载200MB或100MB。这意味着当任务没有完成时我得到了connectionDidFinishLoading方法。有人说设置超时秒以避免这种情况,但我设置超时30秒,它没有用。我应该设置60秒以上吗?有人有更好的想法,请帮助我。

2 个答案:

答案 0 :(得分:0)

每次检查要下载的数据长度和下载的数据时,在connectionDidFinishLoading方法中

[response expectedContentLength];方法

didReceiveResponse获取要下载的数据的长度

答案 1 :(得分:0)

你应该部分下载这么大的文件。在HTTP请求的标头中指定Content-Range字段,并一次只询问文件的一小部分。获得所有部分后,您可以将文件组合在一起。

您可以使用NSMutableURLRequest setValue:@"0-1023/*" forHTTPHeaderField:@"Content-Range"];设置HTTP标头,此示例仅下载文件的第一个kbyte。另请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

中的内容范围