Weiß jemand, wenn NSURLConnection/NSURLRequest Unterstützung für Gzip-Anforderungen haben.NSURLConnection/NSURLRequest gzip Unterstützung
Wenn ja, können Sie weitere Informationen bereitstellen?
Weiß jemand, wenn NSURLConnection/NSURLRequest Unterstützung für Gzip-Anforderungen haben.NSURLConnection/NSURLRequest gzip Unterstützung
Wenn ja, können Sie weitere Informationen bereitstellen?
obwohl es does not seem to be documented, there is evidence dass NSURLConnection
tut transparent gzip Unterstützung. Das heißt, wenn der Server die Kodierung von gzip unterstützt und Ihre Anfrage einen Accept-Encoding
Header hat, der gzip
* enthält, sendet der Server eine gezippte Antwort, die NSURLConnection
automatisch dekodiert.
* NSURLRequest
könnte diesen Header standardmäßig hinzufügen. wenn nicht, müssen Sie es manuell hinzufügen wie folgt:
[urlReq setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]
1. Ich denke, Sie benötigen eine NSMutableURLRequest, um eine Kopfzeile 2. ab "iOS 3.2" als Basis-SDK, die Annahme-Codierung Header Deflate und Gzip zu enthalten scheint automatisch enthalten sein (anscheinend nicht zu sein). – hop
Ich habe gerade Tests gemacht und gesehen, dass das iPhone standardmäßig gzip und deflate hinzufügt. Weiß jemand, ob es immer unterstützt wurde oder seit welcher Version Apple standardmäßig Accept-Encoding integriert hat? – Dmitry
Was ist mit den gzip-Codierungsanforderungen, die an den Server gesendet werden? http://StackOverflow.com/questions/6204066/how-to-gzip-an-nsurlconnection-request – ma11hew28
NSURLRequest
gzip NSData
decodiert; wie die Serverantwort enthalten "Content-Encoding" = gzip
; Die NSData
wird dekodieren. Wenn Sie es automatisch dekodieren möchten, machen Sie als nächstes. Die Verwendung der privaten API kann nicht auf den App Store angewendet werden.
//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);
Ich habe eine Anfrage bei bugreport.apple.com eingereicht, dass diese oder eine äquivalente API veröffentlicht wird. http://openradar.appspot.com/radar?id=4931101243998208 – John
Mögliche Duplikat [Accept-Encoding: gzip auf iOS] (http://stackoverflow.com/questions/25333857/accept-encoding-gzip-on-ios) –
@JoshCaswell, überprüfen Sie bitte das Datum Unterschied . Es wurde 5 Jahre nach dieser Frage gefragt. – mxg
[Duplikate müssen nicht immer in die Richtung des späteren Datums zeigen] (http://meta.stackexchange.com/a/147651/159251). Ich glaube, die Antwort auf die andere Frage ist ein bisschen nützlicher als die hier gefundenen. –