如何从Web服务iphone下载大文件?

时间:2011-08-03 12:34:08

标签: iphone objective-c ios

我是iphone开发的新手。我正在开发一个iphone应用程序,我正在使用php web服务从服务器下载文件。所以我得到响应作为编码字节,我正在解码响应并将其存储为iphone中的文件。

适用于最大2 MB的小尺寸文件。但对于文件而言,下载和解码需要很长时间。

请任何人告诉我如何为大文件做这件事..

是否有更快的方法可以从Web服务下载大文件???

4 个答案:

答案 0 :(得分:3)

尝试使用

NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

并实现委托方法

1. - (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)incrementalData;

2. - (void)connection: (NSURLConnection*) connection didReceiveResponse: (NSHTTPURLResponse*) response;

3. - (void) connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite;

答案 1 :(得分:2)

尝试使用ASIHTTPRequest下载文件。虽然我不能说它是否会让你的下载更快,但它肯定会让它变得更容易。

答案 2 :(得分:2)

我建议使用ASIHTTPRequest库。它只是下载文件背景,您可以启用进度条向用户显示。但要小心你的应用可能会拒绝,因为你不应该通过WAN下载大文件

(Apple建议每5分钟的活动不要超过4.5兆的数据。您可以通过进入iPhone设置,选择General-> Usage菜单并清除统计数据来测试应用程序的使用情况。然后运行您的应用程序5分钟后,返回此屏幕并查看统计信息的内容。此外,为了获得最准确的数字,您应该在运行测试时关闭手机上的任何其他网络活动(例如电子邮件或MobileMe更新)。

Apple悄然将iPhone 3G无线下载限制从10MB增加到20MB,其中包括所有应用,音乐,播客等

答案 3 :(得分:1)

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.txt"];

ASIHTTPRequest