Mar*_*ark 6 iphone gzip nsdata
现在我知道xCode会自动为你做GZip decrompession:
NSData *data = [NSData dataWithContentsOfURL:URL];
Run Code Online (Sandbox Code Playgroud)
如果我指向我服务器上的Gzip文件,它确实有效.但由于我的内容是动态的,我有一个PHP脚本,而不是像这样创建一个gzip文件:
$zp = gzopen($file, "r");
$data = gzread($zp, $filesize);
gzclose($zp);
Run Code Online (Sandbox Code Playgroud)
我用以下代码编码自己的数据:
echo gzencode($data, 9);
Run Code Online (Sandbox Code Playgroud)
有了这个,我添加以下标题:
header("Content-Type: application/x-gzip");
header("Content-Encoding: gzip");
header("Accepts-Encoding: gzip");
Run Code Online (Sandbox Code Playgroud)
当我浏览到URL时,我的浏览器想要自动下载文件,我可以在Mac上解压缩并查看它的内容.但是,当我尝试通过xCode读取它时,它将无法正常工作.
NSData *data = [NSData dataWithContentsOfURL:URL];
NSString *content = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog (content); //returns only data when pointed directly to a Gzip file
Run Code Online (Sandbox Code Playgroud)
我忘记了什么吗?
Ste*_*ntz 25
如果您下载内容类型为application/x-gzip的内容,则网址加载系统不会为您解压缩.我认为data你收到的仍然是gzip编码.
您可以使用我的NSData添加来处理此问题.见http://github.com/st3fan/cocoa-utils/blob/master/src/NSDataGZipAdditions.m
| 归档时间: |
|
| 查看次数: |
10451 次 |
| 最近记录: |