AppEngine gzip сжимает - PullRequest
       9

AppEngine gzip сжимает

7 голосов
/ 12 декабря 2011

Я пытаюсь получить ответы от сервера GAE, но в Content-Encoding получаю ноль.

У меня есть следующий код:

connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", 
          "application/json; charset=utf-8"); //"application/json; charset=utf-8"
connection.setRequestProperty("Accept-Encoding", "gzip");
connection.setRequestProperty("User-Agent", "gzip");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);

//write
//read

System.out.println("Content-Encoding " + connection.getContentEncoding());

Я прочитал это на GAEсерверы делают сжатие автоматически.Так в чем может быть проблема?

Ответы [ 2 ]

9 голосов
/ 15 декабря 2011

Фронтенд-серверы App Engine зависят от ряда факторов, включая заголовки Accept-Encoding и User-Agent, чтобы определить, должны ли они сжимать ответы. Они делают это потому, что существует множество пользовательских агентов, которые утверждают, что принимают gzipped ответы, но на самом деле не могут их понять.

Попробуйте установить в своем пользовательском агенте что-то разумное (а не «gzip», который не является настоящим пользовательским агентом), и посмотрите, имеет ли это какое-то значение.

0 голосов
/ 18 июня 2019

В моем случае проблема заключалась в том, что сервлет не указывал значение для заголовка Content-Type. Я должен был указать это явно:

public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException, ServletException {
    ...
    resp.setHeader("Content-Type", "application/json");
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...