Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 31/03/13, 18:20:06
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 316
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 316
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Error descarga HTML

Buenas,

Estoy intentando obtener el código de la siguiente web http://www.livescore.com/soccer/spain, y me estoy encontrando que mientras que en versiones 2.3 y superiores, se descarga el código correctamente, en la versión 2.2 hay veces que se descarga bien el código y veces que descarga basura.

He probado dos funciones para descargar el código, pero me ocurre lo mismo de las dos formas, ¿alguno tiene idea de que puede pasar?

Os pongo los dos códigos:

Codigo 1:

Código:
            
        private String getHtml() throws Exception         {
HttpClient httpClient = new DefaultHttpClient();
            HttpContext localContext = new BasicHttpContext();
            HttpGet httpGet = new HttpGet("http://www.livescore.com/soccer/spain/");
            HttpResponse response = httpClient.execute(httpGet, localContext);
            String result = "";
             
            BufferedReader reader = new BufferedReader(
                new InputStreamReader(
                  response.getEntity().getContent()
                )
              );
             
            String line = null;
            while ((line = reader.readLine()) != null){
              result += line + "\n";
            }
            
            return result;
}
Codigo 2:

Código:
        private String getHtml() throws Exception
        {
            String aux="";
            String nextLine;
            URL url = null;
            URLConnection urlConn = null;
            InputStreamReader  inStream = null;
            BufferedReader buff = null;
                url  = new URL("http://www.livescore.com/soccer/spain/");
                urlConn = url.openConnection();
                //Set timeouts
                urlConn.setConnectTimeout(45000);
                urlConn.setReadTimeout(45000);            
                inStream = new InputStreamReader(urlConn.getInputStream(),encoding);
                buff= new BufferedReader(inStream);
                // Read and print the lines from index.html
                while (true)
                {
                    nextLine =buff.readLine();
                    if (nextLine !=null)
                    {
                        aux=aux+nextLine;
                    }
                    else{break;}
                }
                return aux;
}
Responder Con Cita


  #2  
Viejo 31/03/13, 18:32:42
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 316
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 316
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Adjunto imágenes de lo que me devuelve la función en 2.2 y en 2.3.
Imágenes Adjuntas
Tipo de Archivo: png device-2013-03-31-182307.png (44.4 KB, 32 visitas)
Tipo de Archivo: png device-2013-03-31-183134.png (71.2 KB, 31 visitas)
Responder Con Cita
  #3  
Viejo 31/03/13, 19:38:53
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Código:
        private String getHtml() throws Exception         {
HttpClient httpClient = new DefaultHttpClient();
            HttpContext localContext = new BasicHttpContext();
            HttpGet httpGet = new HttpGet("http://www.livescore.com/soccer/spain/");
            HttpResponse response = httpClient.execute(httpGet, localContext);
            String result = "";
            result = EntityUtils.toString(response.getEntity());
            return result;
}
Responder Con Cita
  #4  
Viejo 31/03/13, 19:46:34
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 316
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 316
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Código:
        private String getHtml() throws Exception         {
HttpClient httpClient = new DefaultHttpClient();
            HttpContext localContext = new BasicHttpContext();
            HttpGet httpGet = new HttpGet("http://www.livescore.com/soccer/spain/");
            HttpResponse response = httpClient.execute(httpGet, localContext);
            String result = "";
            result = EntityUtils.toString(response.getEntity());
            return result;
}
Con este código me ocurre lo mismo, hay veces que si que descarga bien la info, pero otras que no...
Responder Con Cita
  #5  
Viejo 31/03/13, 22:55:56
Avatar de pmaicas
pmaicas pmaicas no está en línea
Desarrollador
Mensajes: 1,299
 
Fecha de registro: dic 2008
Mensajes: 1,299
Mencionado: 25 comentarios
Tagged: 0 hilos
Deberías mirar las cabeceras de la respuesta, a ver que pone, por ejemplo se me ocurre que te esté mandando la respuesta comprimida.
Responder Con Cita
  #6  
Viejo 01/04/13, 22:45:27
Avatar de set92
set92 set92 no está en línea
Miembro del foro
Mensajes: 468
 
Fecha de registro: jun 2012
Mensajes: 468
Modelo de smartphone: samsung
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Usa loopj que igual te resulta mas sencillo y yo creo que no te pasaran estos problemas, si no puede ser que te lo devuelva a veces en UTF8 y no muestre bien el utf8 ?
http://loopj.com/android-async-http
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 02/04/13, 08:13:12
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 316
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 316
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por set92 Ver Mensaje
Usa loopj que igual te resulta mas sencillo y yo creo que no te pasaran estos problemas, si no puede ser que te lo devuelva a veces en UTF8 y no muestre bien el utf8 ?
http://loopj.com/android-async-http
No conocía esta librería, la probaré luego a ver!
Responder Con Cita
  #8  
Viejo 07/04/13, 14:27:42
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 316
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 316
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por set92 Ver Mensaje
Usa loopj que igual te resulta mas sencillo y yo creo que no te pasaran estos problemas, si no puede ser que te lo devuelva a veces en UTF8 y no muestre bien el utf8 ?
http://loopj.com/android-async-http
He estado haciendo pruebas con esta librería y parece que ya lo descarga correctamente también en 2.2!

Muchas gracias!
Responder Con Cita
  #9  
Viejo 07/04/13, 14:38:55
Avatar de jmmunoz
jmmunoz jmmunoz no está en línea
Usuario muy activo
Mensajes: 2,565
 
Fecha de registro: ago 2010
Localización: Barcelona
Mensajes: 2,565
Modelo de smartphone: SGIV
Versión de ROM: Free
Tu operador: Pepephone
Mencionado: 11 comentarios
Tagged: 0 hilos
Tipicos problemas de codificación... yo te recomiendo que siempre uses iso...para que funcione ok en todos los idiomas...
Responder Con Cita
  #10  
Viejo 07/04/13, 15:38:21
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por Kete_ Ver Mensaje
He estado haciendo pruebas con esta librería y parece que ya lo descarga correctamente también en 2.2!

Muchas gracias!
Te funciona correctamente por lo que dice pmaicas, lo más probable es que te esté enviando los datos comprimidos en GZIP. Y android-async-http (loopj es el nombre del creador, no de la librería, también tiene una librería para carga asíncrona de imágenes, pero ya se le ha quedado bastante anticuada y hay otras que le dan 1000 vueltas) gestiona automáticamente los paquetes HTTP comprimidos con GZIP.
Responder Con Cita
  #11  
Viejo 07/04/13, 19:09:30
Avatar de Kete_
Kete_ Kete_ no está en línea
Miembro del foro
Mensajes: 316
Compra y venta: (1)
 
Fecha de registro: abr 2009
Mensajes: 316
Modelo de smartphone: Nexus 6P
Versión de ROM: 6.0
Tu operador: Pepephone
Mencionado: 6 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Te funciona correctamente por lo que dice pmaicas, lo más probable es que te esté enviando los datos comprimidos en GZIP. Y android-async-http (loopj es el nombre del creador, no de la librería, también tiene una librería para carga asíncrona de imágenes, pero ya se le ha quedado bastante anticuada y hay otras que le dan 1000 vueltas) gestiona automáticamente los paquetes HTTP comprimidos con GZIP.
Aun asi parece extraño que en versiones superiores si sea capaz de manejar esos datos con el mismo código, y que incluso algunas veces si llegase a funcionar...
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 00:17:13 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007