向文件写入大型HTTP响应的最佳方式



我正在寻找编写web请求结果文件的方法。在基于JVM或CLR的语言中,有一些我熟悉的基于流的技术,但我不知道如何在Objective-C中做到这一点。我所需要的基本上是一种发送HTTP请求(带有自定义标头集)并在接收到HTTP响应内容时写入它的方法(由于内存限制,我无法在持久化内容之前获得整个文件,甚至大部分文件)。

想法/建议/片段?

提前感谢!

附言:我正在为Mac操作系统开发,如果有帮助的话,我已经在使用ASIHTTPRequest了。

编辑:我应该指定我不想将服务器返回的所有内容写入磁盘,除非我可以在文件的某个偏移量处直接写入它们(然后我就可以操作),所以任何直接转储到新文件或文件开头的内容都不适用。

有几种方法可以做到这一点,取决于您想要如何处理响应

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/Test/Desktop/cool.html"];

设置setDownloadDestinationPath:后,它将保存到临时路径中,完成后,它会将其移动到您设置的downloadDestinationPath

或者,您可以实现request:didReceiveData:委托(请参阅ASIHTTPRequestDelegate.h),并自己处理它。这类似于流。

PS。我只在iOS上使用过ASIHTTPRequest,而不是Mac OS,所以我不完全确定它是否适用于你。

最新更新