Est-ce que quelqu'un sait si NSURLConnection / NSURLRequest prend en charge les requêtes gzip.
Si oui, pouvez-vous fournir plus d'informations?
Merci d'avance!
Est-ce que quelqu'un sait si NSURLConnection / NSURLRequest prend en charge les requêtes gzip.
Si oui, pouvez-vous fournir plus d'informations?
Merci d'avance!
bien qu'il ne semble pas être documenté, il y a des preuves qu' NSURLConnection
n' ont transparente gzip soutien. ce qui signifie que si le serveur prend en charge l'encodage gzip, et votre demande a un Accept-Encoding
d'en-tête contenant gzip
*, le serveur envoie un format de réponse, qui NSURLConnection
seront automatiquement le décodage.
* NSURLRequest
peut ajouter que les en-tête par défaut. si non, vous devez l'ajouter manuellement comme ceci:
[urlReq setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]
Parfois, NSURLRequest décode toujours gzip en NSData; par exemple, la réponse du serveur contient "Content-Encoding" = gzip; le NSData va décoder. si vous voulez fermer automatiquement le décoder, faites ensuite. Utiliser une API privée ne peut pas s'appliquer à App Store !!!
//import CFNetwork.framework
extern CFStringRef kCFURLRequestDoNotDecodeData;
typedef const struct _CFURLRequest* CFURLRequestRef;
extern void _CFURLRequestSetProtocolProperty(CFURLRequestRef,CFStringRef,CFTypeRef);
//NSURLRequest init ...
//...
CFURLRequestRef requestRef = (CFURLRequestRef)[request performSelector:@selector(_CFURLRequest)];
_CFURLRequestSetProtocolProperty(requestRef,kCFURLRequestDoNotDecodeData,kCFBooleanTrue);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.