Mostrando entradas con la etiqueta URL. Mostrar todas las entradas
Mostrando entradas con la etiqueta URL. Mostrar todas las entradas

miércoles, 28 de enero de 2009

Haciendo peticiones POST con java

9 comentarios
Este clase escrita en java, nos facilita la tares de hace una peticion mediante el método "POST" a una dirección web, esto tiene múltiples aplicaciones, automatizar el acceso a un determinado contenido web, saltarnos validaciones javascript que tenga una pagina, podemos intentar romper un pasword haciendo utilización de fuerza bruta o con unos buenos diccionarios, bueno eso se los dejo a ustedes. Solo espero que le encuentren una buena aplicación. Y que mejoren todo lo que puedan este código y lo compartan con la comunidad.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public class PeticionPost {
private URL url;
String data;

public PeticionPost (String url) throws MalformedURLException{
this.url = new URL(url);
data="";
}

public void add (String propiedad, String valor) throws UnsupportedEncodingException{
//codificamos cada uno de los valores
if (data.length()>0)
data+= "&"+ URLEncoder.encode(propiedad, "UTF-8")+ "=" +URLEncoder.encode(valor, "UTF-8");
else
data+= URLEncoder.encode(propiedad, "UTF-8")+ "=" +URLEncoder.encode(valor, "UTF-8");
}

public String getRespueta() throws IOException {
String respuesta = "";
//abrimos la conexión
URLConnection conn = url.openConnection();
//especificamos que vamos a escribir
conn.setDoOutput(true);
//obtenemos el flujo de escritura
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
//escribimos
wr.write(data);
//cerramos la conexión
wr.close();

//obtenemos el flujo de lectura
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String linea;
//procesamos al salida
while ((linea = rd.readLine()) != null) {
respuesta+= linea;
}
return respuesta;
}

}



Un ejemplo de como usar la clase:

import java.io.IOException;
import peticonesURL.PeticionPost;
public class Prueba {

public static void main(String[] args) throws IOException {
PeticionPost post = new PeticionPost ("http://10.7.23.174/post");
post.add("user", "DJ_bryan");
post.add("password", "*********");
String respuesta = post.getRespueta();
System.out.println(respuesta);
}

}