用Java缩小 - 用Javascript填充

dbr*_*der 7 javascript java deflate inflate

我正在通过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;
}
Run Code Online (Sandbox Code Playgroud)

Javascript方面:

var data = RawDeflate.inflate(Base64.fromBase64(compressed));
Run Code Online (Sandbox Code Playgroud)

eja*_*ice 1

尝试这个:

public static String compressAndEncodeString(String str) {
    DeflaterOutputStream def = null;
    String compressed = null;
    try {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        // create deflater without header
        def = new DeflaterOutputStream(out, new Deflater(Deflater.BEST_COMPRESSION, true));
        def.write(str.getBytes());
        def.close();
        compressed = Base64.encodeToString(out.toByteArray(), Base64.DEFAULT);
    } catch(Exception e) {
        Log.e(TAG, "could not compress data: " + e);
    }
    return compressed;
}
Run Code Online (Sandbox Code Playgroud)