Реализация сжатия zLib во Flex и Java - PullRequest
0 голосов
/ 15 июня 2010

Я отправляю некоторые данные JSON из моего приложения Flex на сторону Java для бизнес-обработки. Кроме того, я добавил некоторый код для сжатия (zLib) данных на стороне Flex, а затем пропускаю их через запрос и распаковываю их на стороне Java. Но на уровне Java несжатые данные все еще не в удобочитаемом / пригодном для использования формате.

Поместите код сюда для справки.

Гибкий код для кодирования

var bytes:ByteArray = new ByteArray();
bytes.writeObject(JSON.encode(someObj));
bytes.position = 0;
bytes.compress();
variables.encodeJSONStr = bytes;
requester.data = variables;
loader.load(requester);

Java-код для декодирования

String json = req.getParameter("encodeJSONStr");
byte[] input = json.getBytes();
Inflater decompresser = new Inflater();
decompresser.setInput(input);
byte[] result = new byte[1000];
int resultLength=0;
resultLength = decompresser.inflate(result);
decompresser.end();
String outputString = new String(result, 0, resultLength, "UTF-8");
System.out.println("\n\n resultLength>>>"+resultLength); // O/P comes as Zero

Может кто-нибудь указать здесь проблему или какой-то лучший подход к сжатию данных при отправке из Flex в Java?

Ответы [ 2 ]

2 голосов
/ 15 июня 2010

Некоторое время назад я написал небольшой пост о передаче сжатых данных между flex / java, возможно, это поможет:

0 голосов
/ 15 июня 2010

Сначала вы должны попробовать, если Flex выполняет сжатие zLib правильно (распаковывая данные, отправленные другим инструментом).

На стороне Java вы можете попробовать использовать InflaterInputStream , которыйлегче в обращении, чем более низкий уровень инфлятор.У меня были некоторые проблемы с нативной реализацией Java, и в итоге я использовал jZlib , который предлагает сжатие zlib-сжатия в чистой Java.

...