Home Menu

Menu



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 18/02/13, 21:18:23
Avatar de cristina1991
cristina1991 cristina1991 no está en línea
Usuario novato en la web
Mensajes: 9
 
Fecha de registro: feb 2013
Localización: Panama
Mensajes: 9
Modelo de smartphone: Samsung galaxy ace
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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.
Responder Con Cita


  #2  
Viejo 18/02/13, 22:30:25
Avatar de bb_android
bb_android bb_android no está en línea
Usuario novato en la web
Mensajes: 16
 
Fecha de registro: ene 2013
Localización: Panama
Mensajes: 16
Modelo de smartphone: Galaxy mini SIII
Tu operador: MasMóvil
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola yo tambien soy de panama. explicame la formula que estas tratando de hacer para el calculo
Responder Con Cita
  #3  
Viejo 18/02/13, 22:59:10
Avatar de cristina1991
cristina1991 cristina1991 no está en línea
Usuario novato en la web
Mensajes: 9
 
Fecha de registro: feb 2013
Localización: Panama
Mensajes: 9
Modelo de smartphone: Samsung galaxy ace
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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.
Responder Con Cita
  #4  
Viejo 21/02/13, 15:02:25
Avatar de bb_android
bb_android bb_android no está en línea
Usuario novato en la web
Mensajes: 16
 
Fecha de registro: ene 2013
Localización: Panama
Mensajes: 16
Modelo de smartphone: Galaxy mini SIII
Tu operador: MasMóvil
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita
  #5  
Viejo 21/02/13, 16:02:42
Avatar de cristina1991
cristina1991 cristina1991 no está en línea
Usuario novato en la web
Mensajes: 9
 
Fecha de registro: feb 2013
Localización: Panama
Mensajes: 9
Modelo de smartphone: Samsung galaxy ace
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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...
Responder Con Cita
  #6  
Viejo 21/02/13, 19:58:20
Avatar de Arasthel
Arasthel Arasthel no está en línea
Cocinero veterano
Mensajes: 1,946
Compra y venta: (1)
 
Fecha de registro: jun 2009
Localización: Almería
Mensajes: 1,946
Modelo de smartphone: Nexus 5
Versión de ROM: DroidKang
Tu operador: Amena
Mencionado: 393 comentarios
Tagged: 1 hilos
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();
EDIT: Obviamente, en urlParameters, donde pone "K1" deberías de poner el value en cuestión.

Un saludo.
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: 21:08:28 (GMT +1)

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