Login em uma página usando HttpClient

2 respostas
vinicius_vieira_gome

Olá!

Estou tentando desenvolver uma classe que faça login automático em uma página html, usando a biblioteca HttpClient (Jakarta commons). A página de login é: https://www.google.com/accounts/ServiceLoginBox?service=orkut&nui=2&skipll=true&skipvpage=true&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin.aspx%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.com%252FHome.aspx&followup=http%3A%2F%2Fwww.orkut.com%2FGLogin.aspx&hl=pt-BR

e o meu código atual é:

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;

public class LoginTest {
    public static void main(String[] args) {
	PostMethod post = new PostMethod(
		"https://www.google.com/accounts/ServiceLoginBox?" +
		"service=orkut&" +
		"nui=2&" +
		"skipll=true&" +
		"skipvpage=true&" +
		"continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin.aspx%3Fmsg%" +
		"3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.com%252FHome.aspx&" +
		"followup=http%3A%2F%2Fwww.orkut.com%2FGLogin.aspx&" +
		"hl=pt-BR");
	post.addParameter("Email", args[1]);
	post.addParameter("Passwd", args[2]);
	HttpClient client = new HttpClient();
	try {
	    int status = client.executeMethod(post); 
	    String response = post.getResponseBodyAsString();
	    System.out.println("status: " + status);
	    //Salvador.salva(response, "C:/test.html");
	    System.out.println(response);
	}catch (HttpException e) {
            System.err.println(e.getMessage());
	    e.printStackTrace();
	}catch (IOException e) {
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
    }
}

Nenhum erro ocorre, porém o resultado é sempre a mesma página de login, não importando se o username e a senha estejam corretos ou não!

Alguém sabe o que eu poderia fazer pra conseguir logar na página?

Obrigado pela atenção!

Vinicius

2 Respostas

_Renatu

Cara, logar no google programaticamente é um saco!

Aquilo é cheio de verificações, redirecionamentos e etc.

Eu aconselharia você a ativar os cookies do seu HttpClient, e seguir os endereços, acompanhando por um browser, com javascript desativado.

Fiz isso uma vez, deu certo… mas deu um trabalhão.

vinicius_vieira_gome

Olá!

Em relação a ativar os cookies do HttpClient tudo bem, mas voce poderia me explicar melhor a parte sobre:
seguir os endereços, acompanhando por um browser?

E já que voce já passou por isso e conseguiu resolver a parada,
poderia falar mais sobre por onde devo seguir?

Obrigado pela dica!

Vinicius

Criado 23 de maio de 2007
Ultima resposta 23 de mai. de 2007
Respostas 2
Participantes 2