Utilización de UrlConnection o similares (JAVA)

Iniciado por ysinotelodigo, 25 Junio 2010, 17:03 PM

0 Miembros y 1 Visitante están viendo este tema.

ysinotelodigo

Hola, Buenas tarde a todos!

Me gustaría investigar y desarrollar una aplicación de Java que realizara tareas automáticamente en internet como podría ser enviar un "privado" del tuenti a alguien.. o incluso algo sencillo como rellenar un formulario... El caso es que ya he conseguido diseñar un rellenador de formulario (donde el formulario es de tipo "POST".. (get es muy facil jejej xD)) Pero ahora se me plantea un gran problema...
el iniciar sesion que en si no tiene dificicultad puesto que es "rellenar un formulario" el caso es que mis dudas aparecen... una vez hecho esto... he de abrir una nueva dirección de página web con otro urlconnection y ya enviar el formulario dentro de la sesion o deberías de tener alguna cosa en cuenta¿? no se.. que no se pueda realizar eso con esa clase...

Aquí presento un código muy sencillo para leer una dirección, rellenar un formulario via "GET" sería facil... el "Post" lo tengo en el ordenador ahora cuando lo encuentre tambien lo presento... A ver si alguien controla de esto y me puede comentar algun link o algo..

import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL pagina = new URL("http://www.google.com/");
        URLConnection yc = pagina.openConnection();
       
        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}

Debci

En principio creo se deberia de poder, pero no estoy seguro, solo hay una manera de saberlo...
Probando jeje

No se si será capaz de mantener persistencia en la sesión.

Saludos

ysinotelodigo

Estoy todavía con ello pero no.. no avanzo aquí expongo con el código que estoy trabajando ahora mismo.

Como el código que adujunte en mi primer mensaje indico una dirección http y accedo a ella pero en es caso especial le inserto mediante el String data los parámetros en "post" que quiero enviar. (He añadido que se guarde el contenido de la página web enun archivo posteriormente para poder verificar que lo que nos aparecería en un navegador si estuvieramos delante sería "Bienvenido o algo por el estilo... " pero no...)

Alguien ve alguna fallo grave de que no sería así...
He podido verificar que funciona porque levanté una página que recibia una cosa mediante post e escribia en un txt en el servidor y funciona para rellenar formulario pero la sesion es algo fastidiado... Puede que necesite trabajar simultáneamente con cookie... no se.. si alguien da una idea se agradece jejej xD

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");
}

}

}

Debci

Claro que necesitas cookie, lo que no me figuro es como hacerlo con el rquest al servidor...
Dejame que investigue un poco sobre el tema y te comento.

Saludos