Android (Descomprimir String GZIP que viene de Webservice .NET)

Iniciado por seba123neo, 24 Noviembre 2010, 00:27 AM

0 Miembros y 1 Visitante están viendo este tema.

seba123neo

Hola, tengo un problemita, es bien simple el planteo asi que se los cuento rapido por pasos asi se entiende.

1 - Desde un webservice de .NET 2008 (vb), tengo un metodo que devuelve un array de bytes, este array de bytes en realidad es un string ("Hola Mundo") comprimido con la Clase GZipStream de System.IO.Compression.

2 - El metodo devuelve el string "Hola Mundo" comprimido, y esto es lo que el webservice retorna:

Código (html4strict) [Seleccionar]
<base64Binary>
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Ir5dlVn6xXo5q/4f0m5DIgoAAAA=
</base64Binary>


3 - si hago una prueba desde una aplicación de visual basic .NET que ejecute este metodo me retorne ese string y lo Descomprima con otra funcion que tengo, me trae bien el Hola Mundo....

4 - Desde Android (Eclipse) ya he logrado hacer la peticion y que me traiga el string anterior...pero no sabria como hacer para Descomprimirlo y que me muestre Hola Mundo...

5 - ya he probado varios codigos de la web, pero ninguno funciona.

alguien sabe algo de esto ? muchas gracias desde ya.

Saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

seba123neo

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

kasiko

Nos vemos...


Debci

Se trata de eso... como es posible que alguien mas coincida en la duda y no tiene solución lo dejo abierto.

Saludos

seba123neo

bueno encontre 2 soluciones, use la segunda porque era la mas rapida.

1 - decodificar esa cadena (que viene codificada en base64), y luego descomprimirla con la clase de GZIP que viene con java.

2 - estuve buscando varias clases para decodificar el base64 en java, hay mas lentas y mas rapidas, pero la mejor que encontre es esta:

http://iharder.sourceforge.net/current/java/base64/

aparte de ser rapida, no tenes que estar descomprimiendo la cadena con el GZIP de java, ya que internamente la clase detecta la compresion y te la descomprime...o sea que en una linea de codigo solucione todo.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson