![]() |
|
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 |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
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; } 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; } |
|
#3
|
||||
|
||||
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; } |
#4
|
||||
|
||||
Cita:
|
#5
|
||||
|
||||
Deberías mirar las cabeceras de la respuesta, a ver que pone, por ejemplo se me ocurre que te esté mandando la respuesta comprimida.
|
#6
|
||||
|
||||
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 |
Gracias de parte de: | ||
#7
|
||||
|
||||
Cita:
![]() |
#8
|
||||
|
||||
Cita:
Muchas gracias! |
#9
|
Tipicos problemas de codificación... yo te recomiendo que siempre uses iso...para que funcione ok en todos los idiomas...
|
#10
|
||||
|
||||
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.
|
#11
|
||||
|
||||
Cita:
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 00:17:13 (GMT +2)
HTCMania: líderes desde el 2007