Кто-нибудь знает, поддерживает ли NSURLConnection/NSURLRequest поддержку запросов gzip.NSURLConnection/NSURLRequest поддержка gzip
Если да, вы можете предоставить дополнительную информацию?
Кто-нибудь знает, поддерживает ли NSURLConnection/NSURLRequest поддержку запросов gzip.NSURLConnection/NSURLRequest поддержка gzip
Если да, вы можете предоставить дополнительную информацию?
хотя does not seem to be documented, there is evidence что NSURLConnection
делает имеет прозрачную поддержку GZIP. что если сервер поддерживает кодировку gzip, а ваш запрос содержит заголовок Accept-Encoding
, содержащий gzip
*, сервер отправит ответ gzipped, который NSURLConnection
будет автоматически декодироваться.
* NSURLRequest
может добавить этот заголовок по умолчанию. если нет, то вы должны добавить его вручную следующим образом:
[urlReq setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]
1. Я думаю, что вам нужно NSMutableURLRequest, чтобы добавить заголовок 2. Как «iOS 3.2» в качестве базового sdk, заголовок accept-encoding, содержащий deflate и gzip, кажется, включен автоматически (видимо, не использовался). – hop
Я только что закончил тесты и увидел, что iPhone добавляет gzip и дефлирует по умолчанию. Кто-нибудь знает, поддерживалась ли она всегда или с какой версии Apple по умолчанию включала Accept-Encoding? – Dmitry
Как насчет запросов на кодирование gzip, отправленных на сервер? http://stackoverflow.com/questions/6204066/how-to-gzip-an-nsurlconnection-request – ma11hew28
NSURLRequest
декодирует GZIP в NSData
; такие как ответ сервера, содержат "Content-Encoding" = gzip
; NSData
будет декодироваться. Если вы хотите его автоматически декодировать, сделайте следующее. Использование частного API не может применяться к магазину приложений.
//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);
Я подал запрос на bugreport.apple.com, чтобы этот или эквивалентный API был опубликован. http://openradar.appspot.com/radar?id=4931101243998208 – John
Возможный дубликат [Accept-Encoding: GZIP на прошивке] (http://stackoverflow.com/questions/25333857/accept-encoding-gzip-on-ios) –
@JoshCaswell, пожалуйста, проверьте разницу даты , Его просили через 5 лет после публикации этого вопроса. – mxg
[Дубликаты не всегда должны указывать в сторону более поздней даты] (http://meta.stackexchange.com/a/147651/159251). Я считаю, что ответ на другой вопрос немного полезнее, чем те, которые были найдены здесь. –