Ora so che xCode fa automaticly il decrompession GZip per voi entro:iPhone e gzip
NSData *data = [NSData dataWithContentsOfURL:URL];
E funziona se indico un file Gzip sul mio server. Ma dal momento che il mio contenuto è dinamico, Ho uno script PHP che piuttosto che creare un file gzip in questo modo:
$zp = gzopen($file, "r");
$data = gzread($zp, $filesize);
gzclose($zp);
ho codificare i miei dati con:
echo gzencode($data, 9);
Con questo aggiungo le seguenti intestazioni :
header("Content-Type: application/x-gzip");
header("Content-Encoding: gzip");
header("Accepts-Encoding: gzip");
Quando si naviga l'URL, il browser vuole scaricare il file in modo automatico e sono in grado di decomprimere sul mio Mac e visualizzare il suo contenuto. Tuttavia, quando provo a leggerlo tramite xCode, non funzionerà.
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
sto dimenticando qualcosa?
sì. ti stai dimenticando di accettare le tue risposte !! (sorry non ha potuto resistere!) –
Stai utilizzando NSLog in modo errato. Usa una stringa di formato: 'NSLog (@"% @ ", contenuto);' – gerry3
Solo per interesse, perché vorresti farlo? Non usare mod_deflate sarebbe molto più semplice e non richiederebbe alcun intervento manuale come questo? – djskinner