У меня есть сержант Java-приложения google appengine, из которого я получаю доступ из некоторого приложения iphone 4.appengine, iphone и gzip
Сервлет пишет ответ как XML. Я установил тип содержимого ответа сервлета на «text/plain». Если я получаю страницу сервлета с помощью Chrome, ответ будет gzipped (1 Кб). Но, если я получаю сервлет с помощью моего приложения iphone, ответ имеет размер 19 КБ ...
Либо приложение iphone извлекает данные с помощью [NSData dataWithContentOfURL:url]
или с некоторым NSMutableURLRequest с полем заголовка HTTP «Accept-Encoding», gzip ", ответ по-прежнему не gzip.
Кроме того, я могу видеть в журналах AppEngine Google, что мой iphone приложение принимает GZIP: CFNetwork/485.10.2 Darwin/10.4.0,gzip(gfe)
Что я могу сделать?
Спасибо. François
Как вы подтвердили, что передача Accept-Encoding: GZIP через дополнительные результаты NSMutableURLRequest в несжатом ответ? Это дает мне сжатый ответ, когда я пытался - см. Http://github.com/jabley/iphone-http/blob/master/Classes/NSURLConnectionFetchTask.m – jabley
«gzip (gfe)» на самом деле не означает, что он распознает ваш клиент поддерживает gzip - «GFE» означает Google Front End. –
Ниже приведены журналы GAE, которые заставляют меня говорить, что мое приложение iphone не обрабатывает запросы gzip: *** iPhone: ***/initialisation 200 48ms 38cpu_ms 19kb myAppName/3.0 CFNetwork/485.10.2 Darwin/10.4.0, gzip (gfe) *** Chrome: ***/initialisation 200 52ms 39cpu_ms 1kb Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, например, Gecko) Chrome/6.0.472.63 Safari /534.3,gzip(gfe) –