Я пытаюсь декодировать полученную строку.
Это сжато, используя дефлятор здесь: https://github.com/dankogai/js-deflate
А затем base64 кодируется.
Однако, когда я использую Java-инфлятор, я получаю следующее сообщение об ошибке: неизвестный метод сжатия.
import sun.misc.BASE64Decoder;
public void org() throws Exception{
BASE64Decoder decoder = new BASE64Decoder();
try {
String inputString = "84VWAVDY";
byte[] decodedByteArray = decoder.decodeBuffer(inputString);
// Decompress the bytes
Inflater decompresser = new Inflater();
decompresser.setInput(decodedByteArray);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
// Decode the bytes into a String
String outputString = new String(result, 0, resultLength);
System.out.println("OUTPUT:" + outputString);
} catch (Exception e){
System.out.println("Exception: " + e);
}
}
Этот код в основном является копией / вставкой из Java API.
Я также пытался использовать новый Inflater (правда); Т.е. сейчасрап
"Примечание. При использовании опции nowrap также необходимо предоставить дополнительный« фиктивный »байт в качестве входного значения. Это требуется собственной библиотекой ZLIB для поддержки определенных оптимизаций."
Так, где этот фиктивный байт должен быть добавлен? В начале или в конце "byte [] decodedByteArray"?
Так есть идеи, как решить эту проблему? Должен ли я только добавить фиктивный байт, мне нужно использовать некоторые другие методы и т. Д.?
Ну, вот и все, вся помощь очень ценится!
Привет
John