HttpClient efetuar um login e navegar por páginas

2 respostas
Pedrosa

Olá alguem poderia me passar um exemplo para efetuar um login e obter o conteudo de uma página com HttpClient, tenho esse exemplo aqui:

public void login(String user, String password) {
		HttpClient client = new HttpClient();
		HttpMethod method = new GetMethod("http://www.site.com.br/Login_Async.aspx?doc=" + user+ "&pass=" + password );
		method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,	new DefaultHttpMethodRetryHandler(3, false));
		try {
			int statusCode = client.executeMethod(method);
			if (statusCode != HttpStatus.SC_OK) {
				System.err.println("Method failed: " + method.getStatusLine());
			}
			byte[] responseBody = method.getResponseBody();
			System.out.println(new String(responseBody));
		} catch (HttpException e) {
			System.err.println("Fatal protocol violation: " + e.getMessage());
			e.printStackTrace();
		} catch (IOException e) {
			System.err.println("Fatal transport error: " + e.getMessage());
			e.printStackTrace();
		} finally {
			method.releaseConnection();
		}
	}

Mas com esse exemplo mesmo eu colocando uma senha inválida me retorna o status 200 de OK.

Tenho algo implementado em PHP assim:

curl_init("http://www.site.com.br/Login_Async.aspx?doc=00811710000100&pass=smcmt29&");
$ch = curl_init("http://www.site.com.br/Login_Async.aspx?doc=[telefone removido]&pass=senha");
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$data1 .= curl_exec($ch);
echo "resultado ".$data1;

Basicamente, preciso fazer um login e navegar pelos conteúdos das páginas que são paginadas, onde posso achar exemplos interessantes?

Grato, Fabio Pedrosa.

2 Respostas

Pedrosa

Para quem precisar de exemplos de HttpClient:

http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/

Com o exemplo ClientApp.java consegui resolver o meu problema!

peczenyj

mas é claro que ele vai retornar 200 OK, o request http foi um sucesso!

infelizmente ele não condiz com o que acoteceu, na pratica, no seu sistema, mas ai é vc que precisa lidar com isso. lembre-se de tratar os cookies :wink:

Criado 8 de agosto de 2007
Ultima resposta 9 de ago. de 2007
Respostas 2
Participantes 2