我有一个大的响应,它是一个至少88Kb的JSON对象,我在客户端上接收这些数据时遇到问题。
我想在Java应用程序中压缩内容并发送回zip,之前我在服务器上使用PHP来压缩大内容然后解压缩它之前已经完成了这个。
目前,JSON字符串是在StringBuilder对象中构建的。如果这个想法存在缺陷,我还能做些什么呢? JSON对象包含大型系统的状态信息,我需要经常更新。
编辑...如果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
同样的结果。
答案 0 :(得分:0)
如果你的服务器在apache web服务器后面打开了 apache inflate命令