Foro de elhacker.net

Programación => Java => Mensaje iniciado por: seba123neo en 24 Noviembre 2010, 00:27 am



Título: Android (Descomprimir String GZIP que viene de Webservice .NET)
Publicado por: seba123neo en 24 Noviembre 2010, 00:27 am
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
  1. <base64Binary>
  2. H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Ir5dlVn6xXo5q/4f0m5DIgoAAAA=
  3. </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.


Título: Re: Android (Descomprimir String GZIP que viene de Webservice .NET)
Publicado por: seba123neo en 26 Noviembre 2010, 02:08 am
tema solucionado, pueden cerrar el tema.


Título: Re: Android (Descomprimir String GZIP que viene de Webservice .NET)
Publicado por: kasiko en 27 Noviembre 2010, 16:03 pm
Hola, puede poner como llegaste a la solucion?


Título: Re: Android (Descomprimir String GZIP que viene de Webservice .NET)
Publicado por: Debci en 27 Noviembre 2010, 21:13 pm
Se trata de eso... como es posible que alguien mas coincida en la duda y no tiene solución lo dejo abierto.

Saludos


Título: Re: Android (Descomprimir String GZIP que viene de Webservice .NET)
Publicado por: seba123neo en 28 Noviembre 2010, 01:47 am
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.