Java - interactuar automáticamente con un formulario

 
Vista:

interactuar automáticamente con un formulario

Publicado por Alberto (1 intervención) el 10/07/2008 19:36:35
Hola,

Estoy haciendo un programa y en una de las partes necesito que envíe unos datos a una página web, estos datos son los que aparecen como campos en un formulario.

Algo similar podría ser hacer un programa que iniciaria sesión en una página web automáticamente, sin tener que implicar a una persona para nada.

He probado a crearme un formulario propio pero no sé como hacer desde java para enviar los datos del formulario (no sé como hacer para darle al botón enviar usando código)

Espero sus respuestas, llevo varios días buscando, sólo necesito que me orienten.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:interactuar automáticamente con un formulario

Publicado por angel (537 intervenciones) el 11/07/2008 09:47:17
Los datos deben aparecer luego en una pagina web, se debe abrir esta y mostrar los datos?.
Si es eso, supongo que una solución sería abrir desde la aplicación un navegador con la url de la pagina web y la lista de parámetros, ej:

http://www.miPagina.es/pagina1.html?parametro1=uno¶metro2=dos&........

Aunque esa solución no me gusta mucho....

Si lo único que tienes que hacer es comunicarte con una pagina web para tu enviarle datos y ella responderte, lo que tienes que hacer es un web service par el lado del servidor y desde tu programa hacer una llama a ese web service.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:interactuar automáticamente con un formulario

Publicado por Carry Potter (3 intervenciones) el 11/07/2008 23:16:49
Te paso el código de tres clases que utilizo para eso, una es de test de ejemplo, los parametros que
tu tienes que pasar son los datos de tu formulario:
Suerte!
---------------------------------------------------------------------------------------------------------
import java.util.ArrayList;
import java.util.List;
public class Test {

public static void main(String[] args) throws Exception {

List<Parameter> list = new ArrayList<Parameter>();
String url="http://carrypotter.blogspot.com";

//Parameter parameter = new Parameter("usuario","admin");
//list.add(parameter);
//parameter = new Parameter("password","admin");
//list.add(parameter);

String resultPage = HTTPControler.sendRequest(url,list,HTTPControler.METHOD.GET);

System.out.println(resultPage);

}

}

---------------------------------------------------------------------------------------------------------
public class HTTPControler {

public enum METHOD{GET,POST}

/**
*
* @param httpUrl del sitio al que quieres consultar
* @param parameters que le vas a enviar
* @param method forma de envío
* @return Un string con la pagina resultado
*/
public static String sendRequest(String httpUrl,List<Parameter> parameters,METHOD method)throws Exception{
String result="";
String stringParameters=parameters!=null && parameters.size()>0?"?":"";

boolean addAnd=false;
for(Parameter param: parameters){
if(addAnd){
stringParameters+="&";
}
stringParameters+=param.getName()+"="+param.getValue();

addAnd=true;
}

if(addAnd){
httpUrl+=stringParameters;
}

URL url=new URL(httpUrl);

HttpURLConnection connection = (HttpURLConnection)url.openConnection();

switch (method) {
case GET:
connection.setRequestMethod("GET");
break;
case POST:
connection.setRequestMethod("POST");
break;
}

connection.setDoInput(true);

connection.connect();


if (connection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
result="PAGE_NOT_FOUNT";
}else{

StringBuilder builder= new StringBuilder();
BufferedReader reader=new BufferedReader(new InputStreamReader( connection.getInputStream()));
String line="";
while((line=reader.readLine())!=null){
builder.append(line+" ");

}

result = builder.toString();
}

connection.disconnect();


return result;
}
}
---------------------------------------------------------------------------------------------------------
public class Parameter {

private String name;

private String value;


public Parameter(String name, String value){
this.name=name;
this.value=value;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}
-------------------------------------------------------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar