Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
968 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Connexion sur un site avec Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Connexion sur un site avec Java

n°1962566
kheops31
Posté le 03-02-2010 à 12:01:58  profilanswer
 

Bonjour tout le monde.
j'essaye de me connecter sur un site internet via un programme Java, grâce à la librairie HttpClient d'apache.
 
Donc, j'arrive sans problème à récupérer le code de la page HTML afin de voir les attributs "name" du formulaire.
le soucis étant que je n'arrive pas à me connecter à mon compte sur le site.
les formulaire sont en méthode POST.
 
voila comment je procède pour essayer de me logguer :
 

Code :
  1. HttpClient client = new HttpClient();
  2.         
  3.         
  4.         PostMethod method = new PostMethod("http://www.xxxx.com/app/user" );
  5.         
  6.         method.addParameter("email", "xxxxxx@gmail.com" );
  7.         method.addParameter("password", "xxxxxxx" );
  8.         
  9.         try {
  10.               // Execute the method.
  11.               int statusCode = client.executeMethod(method);
  12.  
  13.               if (statusCode != HttpStatus.SC_OK) {
  14.                 System.err.println("Method failed: " + method.getStatusLine());
  15.               }
  16.  
  17.               // Read the response body.
  18.               byte[] responseBody = method.getResponseBody();
  19.  
  20.               // Deal with the response.
  21.               // Use caution: ensure correct character encoding and is not binary data
  22.               System.out.println(new String(responseBody));
  23.  
  24.             } catch (HttpException e) {
  25.               System.err.println("Fatal protocol violation: " + e.getMessage());
  26.               e.printStackTrace();
  27.             } catch (IOException e) {
  28.               System.err.println("Fatal transport error: " + e.getMessage());
  29.               e.printStackTrace();
  30.             } finally {
  31.               // Release the connection.
  32.               method.releaseConnection();
  33.             }


comment puis-je m'y prendre?

mood
Publicité
Posté le 03-02-2010 à 12:01:58  profilanswer
 

n°1962586
breizhbugs
Posté le 03-02-2010 à 13:26:28  profilanswer
 

"le soucis étant que je n'arrive pas à me connecter à mon compte sur le site. "
 
Et tu as un message d'erreur?

n°1962591
kheops31
Posté le 03-02-2010 à 13:40:09  profilanswer
 

non, même pas...on retourne sur la page d'accueil...mais sans erreur.
 
en fait, au départ, le but était de récupérer le code HTML de la page en l'affichant dans la console (j'utilise eclipse).
le code de la page s'affiche correctement, donc j'ai repérer le formulaire <form> </form> pour trouver les "name" afin de faire passer mes logs en paramètres...
 
mais le résultat...pas d'erreur, et je récupère le code de la page d'accueil...le même que précédemment :s

n°1962619
phnatomass
Je m'empare de ton esprit !!
Posté le 03-02-2010 à 14:25:56  profilanswer
 

Gestion de session coté serveur peut-être?

n°1962622
kheops31
Posté le 03-02-2010 à 14:32:04  profilanswer
 

Que veux tu dire par la?
 
je  souhaiterais arriver à pouvoir me loguer et a accéder à mon compte via mon appli java...mais je n'y arrive toujours pas!!!

n°1962623
kheops31
Posté le 03-02-2010 à 14:32:05  profilanswer
 

oups..double post...


Message édité par kheops31 le 03-02-2010 à 14:32:51
n°1962718
phnatomass
Je m'empare de ton esprit !!
Posté le 03-02-2010 à 18:16:45  profilanswer
 

Ne serait-ce que pour éviter justement qu'un "Robot" tente de multiple tentative de connexion en testant des mots de passe, il se peut que le serveur gère un id de session utilisateur que tu devrais lui renvoyer lors de ton authentification.
Effectue un GET sur la page du formulaire d'authentification et regarde tout ce que le serveur te renvoie.

n°1962932
kheops31
Posté le 04-02-2010 à 14:22:28  profilanswer
 

oups...encore double post...bizarre ça !!!


Message édité par kheops31 le 04-02-2010 à 14:23:22
n°1962933
kheops31
Posté le 04-02-2010 à 14:22:29  profilanswer
 

C'est bon j'ai réussi à me connecter
 
En fait le problème était dans la methode Post (que j'ai changé en méthode GET) pour effectuer la redirection : j'avais oublié de remettre le User-Agent donc ça ne marchais pas
 
Voici le code final :  
 

Code :
  1. // Create an instance of HttpClient.
  2.  HttpClient client = new HttpClient();
  3.  // utilisation du user-agent de firefox
  4.  Header header = new Header("User-Agent", "Mozilla/5.0" );
  5.  PostMethod method = new PostMethod("https://www.xing.com/app/user" );
  6.  method.setRequestHeader(header);
  7.  method.addParameter("login_user_name", "xxxxxx@gmail.com" );
  8.  method.addParameter("login_password", "xxxxxxx" );
  9.  method.addParameter("op", "login" );
  10.  method.addParameter("dest", "/app/startpage?op=home;from_login=1" );
  11.  method.addParameter("perm", "true" );
  12.    
  13.  try {
  14.   // Execute the method.     
  15.   int statusCode = client.executeMethod(method);
  16.   if (statusCode != HttpStatus.SC_OK) {
  17.    System.err.println("Method failed: " + method.getStatusLine());
  18.    // si il y a une redirection on l'utilise
  19.    while (statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
  20.     String redirectLocation = "";
  21.     //on récupère l'url de la redirection
  22.     Header locationHeader = method.getResponseHeader("location" );
  23.     if (locationHeader != null) {
  24.      redirectLocation = locationHeader.getValue();
  25.     }
  26.     System.out.println(redirectLocation);
  27.     method = new PostMethod(redirectLocation);
  28.     method.setRequestHeader(header);
  29.     statusCode = client.executeMethod(method);
  30.    }
  31.   }
  32.   System.out.println("-------------------------------------------------------------" );
  33.   // Read the response body.
  34.   byte[] responseBody = method.getResponseBody();
  35.   // Deal with the response.
  36.   // Use caution: ensure correct character encoding and is not binary
  37.   // data
  38.   System.out.println(new String(responseBody));
  39.  } catch (HttpException e) {
  40.   System.err.println("Fatal protocol violation: " + e.getMessage());
  41.   e.printStackTrace();
  42.  } catch (IOException e) {
  43.   System.err.println("Fatal transport error: " + e.getMessage());
  44.   e.printStackTrace();
  45.  } finally {
  46.   // Release the connection.
  47.   //method.releaseConnection();
  48.  }


 
 
Merci de ton aide phnatomass

n°2130381
Jeson
Posté le 08-03-2012 à 17:08:03  profilanswer
 

Quelqu'un peut-il m'aider à réaliser un programme en java permettant de faire la gestion du payroll des professeurs dans une école?
C'est Dave


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Connexion sur un site avec Java

 

Sujets relatifs
Terme pour appli type Java vs. PHP?Conseils pour choix d'architecture - dialogue javascript/java
Connexion interrompue avec WAMPSERVER[Site internet & BDD] Quels besoins?
[Site Internet] Estimation du coût d'une boutique de vente en ligneException in thread "main" java.lang.NoClassDefFoundError
Se passer de javascript sur son siteBesoin d'aide pour mon 1er site
[Perl] comment naviguer sur un site avec du javascriptRecuperer valeur textbox pour connexion à une base Oracle
Plus de sujets relatifs à : Connexion sur un site avec Java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR