У меня большой ответ, который является объектом JSON не менее 88 КБ. У меня возникают проблемы с получением этих данных на клиентах.Сервер Java AJAX, как закрепить ответы JSON
Я хотел бы заархивировать содержимое в приложении Java и отправить обратно zip, я сделал это раньше, когда PHP на сервере зашифровывает большой контент, а браузер распаковывает его.
В настоящее время строка JSON создается в объекте StringBuilder. Если эта идея ошибочна, что еще я могу сделать? Объект JSON содержит информацию о состоянии для большой системы, и мне нужны частые обновления для отправки.
Edit ... Я прогрессировал проблему, если размер JSON является> 512 байт, то я передаю StringBuffer на функцию ниже:
public StringBuilder zipStringBuilder(StringBuilder sbSource) {
StringBuilder sbZipped = null;
try {
byte[] arybytSource = sbSource.toString().getBytes();
byte[] arybytBuffer = new byte[ZIP_BUFFER];
Deflater objDeflater = new Deflater();
objDeflater.setInput(arybytSource);
ByteArrayOutputStream baos = new ByteArrayOutputStream(arybytSource.length);
objDeflater.finish();
while(!objDeflater.finished()) {
int intCount = objDeflater.deflate(arybytBuffer);
baos.write(arybytBuffer, 0, intCount);
}
baos.close();
sbZipped = new StringBuilder();
sbZipped.append(baos.toString());
} catch (IOException e) {
e.printStackTrace();
}
return sbZipped;
}
заголовков HTTP являются следующим:
HTTP/1.0 200
Date: Fri Nov 13 14:47:06 GMT 2015
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT
Access-Control-Allow-Credentials: true
Keep-Alive: timeout=2, max=100
Cache-Control: no-cache
Pragma: no-cache
Content-Encoding: zip
Content-type: application/json;charset=utf-8
Но я не получаю это или браузер не понимает этого?
Я также попытался:
Content-Encoding: gzip
С таким же результатом.
Это не веб-сервер полностью закодирован в Java. – SPlatten