现在我知道 xCode 会自动为您执行 GZip decrompession:
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
我是不是忘记了什么?