Est-ce que quelqu'un sait si NSURLConnection/NSURLRequest prend en charge les requêtes gzip.NSURLConnection/NSURLRequest support gzip
Si oui, pouvez-vous fournir plus d'informations?
Est-ce que quelqu'un sait si NSURLConnection/NSURLRequest prend en charge les requêtes gzip.NSURLConnection/NSURLRequest support gzip
Si oui, pouvez-vous fournir plus d'informations?
bien qu'il does not seem to be documented, there is evidence que NSURLConnection
ne ont support gzip transparent. ce qui signifie que si le serveur prend en charge le codage gzip et que votre requête contient un en-tête Accept-Encoding
contenant gzip
*, le serveur enverra une réponse gzippée, qui sera automatiquement décodée par NSURLConnection
.
* NSURLRequest
peut ajouter cet en-tête par défaut. sinon, vous devez l'ajouter manuellement comme ceci:
[urlReq setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]
1. Je pense que vous avez besoin d'un NSMutableURLRequest pour ajouter un en-tête 2. à partir de "iOS 3.2" comme base sdk, l'en-tête accept-encoding contenant deflate et gzip semble être automatiquement inclus (apparemment pas utilisé). – hop
Je viens de faire des tests et j'ai vu que l'iPhone ajoute gzip et deflate par défaut. Est-ce que quelqu'un sait s'il a toujours été supporté ou depuis quelle version Apple a commencé à accepter Accept-Encoding par défaut? – Dmitry
Qu'en est-il des demandes de codage gzip envoyées au serveur? http://stackoverflow.com/questions/6204066/how-to-gzip-an-nsurlconnection-request – ma11hew28
NSURLRequest
décodent gzip à NSData
; comme la réponse du serveur contient "Content-Encoding" = gzip
; le NSData
va décoder. Si vous souhaitez le décoder automatiquement, procédez ensuite. L'utilisation d'une API privée ne peut pas s'appliquer à l'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);
J'ai déposé une demande à bugreport.apple.com que cette API ou une API équivalente soit rendue publique. http://openradar.appspot.com/radar?id=4931101243998208 – John
double possible de [Accept-Encoding: gzip sur iOS] (http://stackoverflow.com/questions/25333857/accept-encoding-gzip-on-ios) –
@JoshCaswell, s'il vous plaît vérifier la différence de date . Il a été demandé 5 ans après que cette question a été postée. – mxg
[Les doublons ne doivent pas toujours pointer vers la date ultérieure] (http://meta.stackexchange.com/a/147651/159251). Je crois que la réponse à l'autre question est un peu plus utile que celles trouvées ici. –