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