在Java中放气在Javascript中充气
我正在通过nodejs将压缩数据从java应用程序发送到网页。使用java deflater压缩数据,并对base64进行编码。在网页上,我试图用https://github.com/dankogai/js-deflate膨胀数据,但它不起作用(空结果)。我错过什么了吗
Java方面:
private String compress(String s) {
DeflaterOutputStream def = null;
String compressed = null;
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
// create deflater without header
def = new DeflaterOutputStream(out, new Deflater(Deflater.DEFAULT_COMPRESSION, true));
def.write(s.getBytes());
def.close();
compressed = Base64.encodeBase64String(out.toByteArray());
System.out.println(compressed);
} catch(Exception e) {
Log.c(TAG, "could not compress data: " + e);
}
return compressed;
}
Javascript方面:
var data = RawDeflate.inflate(Base64.fromBase64(compressed));
# 1 楼答案
试试这个:
# 2 楼答案
我遇到了同样的问题。js泄气项目充气机似乎已损坏。我发现它可以在短输入时工作,但在长输入时失败(例如,lorem ipsum作为测试数据)
一个更好的选择是zlib.js
下面是我如何使用它在Javascript中膨胀一个JSON对象,该对象在服务器上生成、压缩和base64编码:
(仅供参考,助手函数源自其他stackoverflow答案)