Теперь я знаю, что 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
Я что-то забыл?