Librerias necesarias
import java.io.IOException;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
/**
* @author Leyer
*/
public class SMF {
protected HttpClient client = new HttpClient();
public static final String USER ="user";
public static final String PASSWORD="passwrd";
public static final int REDIRECT = HttpStatus.SC_MOVED_TEMPORARILY;
private boolean login = false;
public boolean isLogin(){
return login;
}
/**
* Inicia sesion
*
* @param formAction Accion del formulario
* @param user Nombre de Usuario
* @param password Contrasena
* @param minutes Duracion de la sesion en minutos
*
* @return boolean
*/
public boolean login(String formAction,String user,String password,int minutes){
PostMethod postMethod = new PostMethod(formAction);
if(user!=null&password!=null&&minutes>0){
postMethod.addParameter(USER, user);
postMethod.addParameter(PASSWORD,password);
postMethod.addParameter("cookielength",String.valueOf(minutes));
int statusCode = -1;
try {
statusCode = client.executeMethod( postMethod );
if(statusCode == REDIRECT){
postMethod.releaseConnection();
login = true;
}
} catch (HttpException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
}
}else{
System.err.println("Datos no validos");
}
return login;
}
public Cookie[] getCookies(){
if(isLogin()){
return client.getState().getCookies();
}else{
System.err.println("No te has logueado");
return null;
}
}
public static void main( String[] args ) {
//<form action="http://foro.elhacker.net/login2.html" method="post"
String formAction = "http://foro.elhacker.net/login2.html";
SMF smf=new SMF();
boolean login=smf.login(formAction,"user", "password",90);
if(login){
System.out.println("Te has logueado correctamente!");
}else{
System.err.println("usuario o contrasena incorrectos");
}
}
}