|
||
|
![]() |
![]() |
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
|
||||
|
||||
Ayuda!!!
Hola buenas, necesito para el trabajo traerme cierta información de una página, de la attt de Panamá. Pondría el enlace pero no me lo permite hasta tener un número de post, soy nueva aquí.
Necesito traerme el total al calcular de barrio a barrio cuánto costaría el taxi. La verdad me urge mucho y me estoy volviendo loca porque soy malisima para el inglés y la única ayuda que encuentro es en inglés, si alguien pudiera ayudarme... la verdad lo agradecería mucho. Un saludo y gracias. |
|
#2
|
||||
|
||||
Hola yo tambien soy de panama. explicame la formula que estas tratando de hacer para el calculo
|
#3
|
||||
|
||||
Hola, lo que necesito es traerme la informacion de la pagina de la attt, en la cual consulta el precio de los taxis de un punto a otro, es un icono verde que está a la derecha según bajas por la página, y lo que necesito es, mandarle los parametros de un spinner que selecciona el usuario y que la página me responda con el calculo, es decir coger la informacion de la pagina segun los datos que le envie.
No se ni como enviarle los datos ni como recibirlos. Gracias. |
#4
|
||||
|
||||
pon el link para ver como es. me meti en la pagina de la attt pero no vi nada con esa info de los taxi. no sabia q eso existia
|
#5
|
||||
|
||||
Hola buenas, la url es esta: http://www.transito.gob.pa/tarifas_taxi.php ya consegui que me traiga la respuesta con el html, el problema es que me devuelve el que no es... y ahi ya si que ya no se...
el codigo que use fue este: package com.example.consultapanama; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity ; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; public class Calcular{ public static String callRESTService(String origen,String destino) { String html = null; try{ HttpPost httpost = new HttpPost("http://www.transito.gob.pa/tarifas_taxi.php"); List<NameValuePair> nvps = new ArrayList <NameValuePair>(); nvps.add(new BasicNameValuePair("buscar", "Buscar")); nvps.add(new BasicNameValuePair("ddesc", "")); nvps.add(new BasicNameValuePair("destino", destino)); nvps.add(new BasicNameValuePair("odesc", "")); nvps.add(new BasicNameValuePair("origen", origen)); nvps.add(new BasicNameValuePair("val", "1")); UrlEncodedFormEntity sendentity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8); httpost.setEntity(sendentity); HttpClient client = new DefaultHttpClient(); HttpResponse response = client.execute(httpost); HttpEntity entity = response.getEntity(); html = readFromBuffer(new BufferedReader(new InputStreamReader(entity.getContent(),"UTF-8"))); return html; } catch(Exception e){ e.printStackTrace(); html="error de lectura"; } return html; } private static String readFromBuffer(BufferedReader br){ StringBuilder text = new StringBuilder(); try{ String line; while ((line = br.readLine()) != null) { text.append(line); text.append("\n"); } } catch (IOException e) { e.printStackTrace(); // tratar excepción!!! } return text.toString(); } } y con esto me devuelve el html, el problema es que me devuelve el de antes de buscar, por lo que no me trae el resultado... y no se como hacer para que me devuelva el otro... |
#6
|
||||
|
||||
En resumen, la web es una gran chapuza. Hace referencia a funciones javascript que no existen, deja sin uso unos cuantos input hidden, usa tablas con subtablas, con subtablas, con subtablas, todo para no escribir 4 líneas de código CSS ... pero lo mejor de todo es que hace referencia a un archivo que está, atención, a nivel local en el PC de un tal Joel Cárdenas ("file:///C|/Users/JoelCárdenas/Documents/BackupWeb_27_11_2010/Scripts/swfobject_modified.js").
En fin, después de maravillarme con el increíble código de la web y ver cómo se hacía el envío del formulario, he visto que se hace por POST usando los valores de los 2 select con name "origen" y "destino". La cosa es que los options de ese select tienen 2 valores, un value normal y un "value1". Realmente el "value1" no tiene ningún sentido y dudo que se use. He buscado por internet y probado un poco y este código devuelve lo que necesitas, solo te queda leer el valor a mano o con un parser HTML para Java. Código:
String urlParameters = "origen=K1&destino=K1&buscar=Buscar&val=1"; URL url = new URL("http://www.transito.gob.pa/tarifas_taxi.php"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(urlParameters); writer.flush(); String line; BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder textBuilder = new StringBuilder(); while ((line = reader.readLine()) != null) { textBuilder.append(line); } writer.close(); reader.close(); //Para devolver el valor String resultadoHtml = textBuilder.toString(); Un saludo. |