Olá pessoal, bom dia!
Tenho a seguinte tarefa a efetuar, logar em um sistema através da minha aplicação, seria como logar no gmail ou no facebook através da aplicação.
Nota: Não existe um serviço para isso (Rest, WebService, rmi na unha, …, nada ).
A ideia é pegar os “names” dos inputs da página e posta-los sob a action do form qual pertencem através de um executável.
Abaixo uma tentativa de acesso ao GMAIL:
@Test
public void googleGmail(){
try {
String url = "https://accounts.google.com/ServiceLoginAuth";
String query = "continue=https://mail.google.com/mail/";
query += "&service=mail";
query += "<mpl=default";
query += "&rm=false";
query += "&scc=1";
query += "&ss=1";
query += "&GALX=jHfkUv84ynU";
query += "¨&checkConnection=youtube:248:1";
query += "&checkedDomains=youtube";
query += "&timeStmp=1";
query += "&password=????????";
query += "&[email protected]";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost( url + "?" + query );
HttpResponse response = httpClient.execute(postRequest);
System.out.println( "StatusCode: " + response.getStatusLine().getStatusCode() );
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
String output;
while ((output = br.readLine()) != null) {
System.out.println(output.replaceAll(" ", "").replaceAll("\r", "").replaceAll("\t", ""));
}
httpClient.getConnectionManager().shutdown();
} catch (Exception e) {
e.printStackTrace();
}
}
O Google me devolve a página de login, ou seja, não consegui logar.
Mudei os parâmetros para acessar uma aplicação minha/local e consegui, submeti e acessei como usuário, devolvendo uma página de bem vindos.
Qualquer ideia é bem vinda, abçs.