|
02-dic-2011 | #1 |
Ingreso: junio-2011
Mensajes: 6
Sexo: País: Signo:
Agradecido: +10
|
[DUDA] Rellenar formularios web usando Java
Antes de nada decir que es la primera vez que escribo en el foro desde que me presente hace un par de días y espero portar por aquí más de una vez porque me encanta la programación y por aquí siempre se aprende algo.
Y sin más, me pongo al tema. Veréis, me gustaría crear una aplicación en java que me logueara en un foro SMF (supongo que el tipo de foro dependerá) y me permitiese tanto la descarga de su contenido como la creación de nuevas respuestas e hilos. Buscando por google he visto que hay gente que dice que se necesita el uso de cookies y tambien he visto un par de códigos. Os pongo un código que he visto por internet y funciona perfectamente. Código:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.util.Scanner; public class uso { public static void main(String[] args){ try { Scanner sc=new Scanner(System.in); System.out.println("Ingrese URL completa:"); String pagina=sc.nextLine(); URL url = new URL(pagina); System.out.println("Protocolo: "+url.getProtocol()); System.out.println("Host: "+url.getHost()); System.out.println("Fichero: "+url.getFile()); System.out.println("Puerto: "+url.getPort()); System.out.println("Path: "+url.getPath()); System.out.println("Query: "+url.getQuery()); System.out.println("Puerto por defecto: "+url.getDefaultPort()); //Codigo HTML de la pagina System.out.println("\n\n\t\tCodigo HTML de la pagina"); System.out.println("\t\t------------------------\n\n"); InputStreamReader reader=new InputStreamReader(url.openStream()); BufferedReader in= new BufferedReader(reader); String inputLine; while((inputLine=in.readLine())!=null) System.out.println(inputLine); in.close(); } catch (Exception ex) { ex.printStackTrace(); } } } La línea que usa para conectarse es URL url = new URL(pagina); Sin embargo luego he visto este otro que además de crear una URL url = new URL(pagina); crea también una URLConnection conn = url.openConnection(); Además en este código escribe, es decir, envía información a la página. Código:
import java.io.BufferedReader; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; public class vagos { /** * @param args */ public static void main(String[] args) { String data = "variable=contenido&variable=contenido"; try { URL url = new URL("http://www.google.es"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); PrintWriter output = new PrintWriter(conn.getOutputStream()); output.write(data); output.flush(); FileWriter salida=new FileWriter("C:\\salida.html"); StringBuffer answer = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String lines; while ((lines = reader.readLine()) != null) { answer.append(lines+"\n"); salida.write(lines+"\n"); } salida.close(); output.close(); System.out.println(answer.toString()); } catch(Exception e) { System.out.println("An error has occured"); } } } El tema es que para crear un hilo nuevo tendría que crear una nueva conexión con otra ruta html y en ese caso perdería el logueo... Ando un poco perdido porque es la primera vez que intento interactuar con una página web. A ver si podéis ayudarme :D |
Los siguientes 2 usuarios agradecen a Proteus1989 por este mensaje: | ||
baduser (03-dic-2011), cramercaba (06-dic-2011) |
06-dic-2011 | #2 |
Ingreso: junio-2011
Mensajes: 6
Sexo: País: Signo:
Agradecido: +10
|
Nadie?
|
Los siguientes 2 usuarios agradecen a Proteus1989 por este mensaje: | ||
baduser (06-dic-2011), cramercaba (06-dic-2011) |
06-dic-2011 | #3 |
Banned Ingreso: julio-2009
Ubicación: Mexico City, Capital del Mundo
Mensajes: 33.485
Sexo: País: Signo:
Agradecido: +70.458
|
espera a que venga el experto en JAVA; de repente tarda un poco pero si viene....
|
Los siguientes 2 usuarios agradecen a baduser por este mensaje: | ||
cramercaba (06-dic-2011), Proteus1989 (08-dic-2011) |
08-dic-2011 | #4 |
Ingreso: junio-2011
Mensajes: 6
Sexo: País: Signo:
Agradecido: +10
|
Tanto como de repente... xD
Han pasado cinco días :D Pongo mis avances: Descargandome un par de librerías he conseguido loguearme usando esto HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod("http://paginaSMF/index.php?action=login2"); postMethod.addParameter("user", "nombre"); postMethod.addParameter("passwrd", "contraseña"); postMethod.addParameter("cookielength", String.valueOf(90)); client.executeMethod(postMethod); conseguí loguearme en la página y gracias a eso poder entrar en cualquier sección y descargarme su contenido en el ordenador con la orden getMethod. Ahora lo que quiero es postear un nuevo mensaje y para ello hago esto: PostMethod escribir = new PostMethod("http://paginaSMF/index.php?action=post"); escribir.addParameter("subject", "Estoy haciendo una prueba"); escribir.addParameter("message", "Esto no va a ir ni de flys"); Con eso consigo que me devuelva la página de creación de un nuevo hilo con el titulo y el cuerpo completados y una previsualización de la misma, pero no manda el post para ser escrito en la base de datos. Uno de los problemas que tengo es que no se cuales son los parametros que tengo que añadirle para que me envíe el post y el otro es que creo que la ruta es http://paginaSMF/index.php?action=post2 en lugar de http://paginaSMF/index.php?action=post También en probado con post2 sin ninguna mejoría... Llevo ya 5 días dandole vueltas a esto y no consigo sacarlo. A ver si alguien me resuelve esta dudilla. |
Los siguientes 3 usuarios agradecen a Proteus1989 por este mensaje: | ||
10-dic-2011 | #5 |
Desarrollador HTML5 & CSS3 Ingreso: octubre-2011
Ubicación: Republica Dominicana, Punta Cana Bávaro
Mensajes: 157
Sexo: País: Signo:
Agradecido: +445
|
si que hay que esperar.. al experto en java..
|
Los siguientes 2 usuarios agradecen a Hectorsito20 por este mensaje: | ||
cramercaba (11-dic-2011), Hunted (10-dic-2011) |
10-dic-2011 | #6 |
Ingreso: junio-2011
Mensajes: 6
Sexo: País: Signo:
Agradecido: +10
|
Solo espero que la espera (valga la redundancia) sirva para algo
Llevo varios días bloqueado. |
Los siguientes 2 usuarios agradecen a Proteus1989 por este mensaje: | ||
baduser (12-dic-2011), cramercaba (11-dic-2011) |
17-dic-2011 | #7 |
Ingreso: junio-2011
Mensajes: 6
Sexo: País: Signo:
Agradecido: +10
|
En fin, desisto
|
(0 miembros y 1 visitantes) | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
*.* Diez cosas para hacer después de instalar Fedora 15 [Concurso 2011] | danzo665 | Tutoriales & Videos Tutoriales | 10 | 30-jul-2011 00:06 |
Que es JAVA ? | baduser | Otras | 8 | 19-jul-2011 11:27 |
[Java] Reloj en Java, usando Thread | Manybadilla | Programación | 8 | 04-oct-2010 04:54 |