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

3
我是一名新手iPhone开发者。我正在开发一款iPhone应用程序,其中使用PHP Web服务从服务器下载文件。因此,我会得到编码字节作为响应,然后将其解码并将其存储为iPhone上的文件。
对于小型文件(最多2 MB),它的工作效果良好。但对于大于此大小的文件,下载和解码需要很长时间。
请问是否有更快的方法来从Web服务下载大型文件?
4个回答

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;

2
尝试使用ASIHTTPRequest来下载文件。虽然我不能保证它能让你的下载更快,但肯定会让操作更容易。

2
我建议使用ASIHTTPRequest库。它可以在后台下载文件,并且您可以启用进度条以向用户显示。但要小心,因为您不应该在WAN上下载大文件,否则您的应用程序可能会被拒绝。
(苹果建议不要超过每5分钟活动时间4.5兆字节的数据。您可以通过进入iPhone设置并选择“通用-》使用”菜单来测试您的应用程序的使用情况,并清除统计信息。然后运行您的应用程序5分钟,返回到此屏幕并查看统计信息。此外,在运行测试时,应关闭手机上的任何其他网络活动(例如电子邮件或MobileMe更新),以获得最准确的数字。 苹果已经悄悄将iPhone 3G的无线下载限制从微弱的10MB提高到20MB,其中包括所有应用程序、音乐、播客等。

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

ASIHTTPRequest

这段内容与编程有关,涉及到一个名为“ASIHTTPRequest”的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接