iPhone和GZip

iPhone和GZip,iphone,gzip,nsdata,Iphone,Gzip,Nsdata,现在我知道xCode自动为您在以下范围内执行GZip解压缩: NSData *data = [NSData dataWithContentsOfURL:URL]; 如果我指向服务器上的Gzip文件,它就可以工作了。但由于我的内容是动态的,所以我有一个PHP脚本,而不是像这样创建一个gzip文件: $zp = gzopen($file, "r"); $data = gzread($zp, $filesize); gzclose($zp); 我用以下代码对自己的数据进行编码: echo gz

现在我知道xCode自动为您在以下范围内执行GZip解压缩:

NSData *data = [NSData dataWithContentsOfURL:URL];
如果我指向服务器上的Gzip文件,它就可以工作了。但由于我的内容是动态的,所以我有一个PHP脚本,而不是像这样创建一个gzip文件:

$zp   = gzopen($file, "r");
$data = gzread($zp, $filesize);
gzclose($zp);
我用以下代码对自己的数据进行编码:

echo gzencode($data, 9);
在此基础上,我添加了以下标题:

header("Content-Type: application/x-gzip");
header("Content-Encoding: gzip");
header("Accepts-Encoding: gzip");
当我浏览到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

我忘了什么吗?

如果您下载内容类型为application/x-gzip的内容,url加载系统将不会为您解压。我认为您收到的
数据仍然是gzip编码的


您可以使用我的NSData添加来处理此问题。看

是的。你忘记接受你的答案了!!(抱歉,无法抗拒!)您使用的NSLog不正确。使用格式字符串:
NSLog(@“%@”,内容)只是出于兴趣,为什么要这样做?使用mod_deflate不是更简单,也不需要任何像这样的手动干预吗?投票结果令人难以置信地有用-感谢分类!