IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Connexion sur un site avec Java


Sujet :

API standards et tierces Java

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut Connexion sur un site avec Java
    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 java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    HttpClient client = new HttpClient();
     
     
    	    PostMethod method = new PostMethod("http://www.xxxx.com/app/user");
     
    	    method.addParameter("email", "xxxxxx@gmail.com");
    	    method.addParameter("password", "xxxxxxx");
     
    	    try {
    		      // Execute the method.
    		      int statusCode = client.executeMethod(method);
     
    		      if (statusCode != HttpStatus.SC_OK) {
    		        System.err.println("Method failed: " + method.getStatusLine());
    		      }
     
    		      // Read the response body.
    		      byte[] responseBody = method.getResponseBody();
     
    		      // Deal with the response.
    		      // Use caution: ensure correct character encoding and is not binary data
    		      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 {
    		      // Release the connection.
    		      method.releaseConnection();
    		    }
    comment puis-je m'y prendre?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Rajoute quelques informations, comme le Referer (voir protocole HTTP).

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Désolé je ne comprend ce que tu veux que je rajoute

    normalement ce code doit pouvoir envoyer à l'url, définit dans :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    new PostMethod("http://www.xxxx.com/app/user")
    , les informations par méthode POST afin de valider un formulaire d'authentification mais cela ne marche pas


    Y aurait-il une autre façon de procéder si cette manière de faire c'est pas bonne ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Freddo31 Voir le message
    mais cela ne marche pas
    merci de préciser (message d'erreur du serveur, code d'erreur, exceptions, .... ?)

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Quand je dis que cela ne marche pas, c'est qu'on retourne systématiquement sur la page d'accueil mais il n'y aucune erreur qui est retournée

    En fait, je ne sais pas comment m'y prendre pour me logguer sur le site

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    As-tu accès à la source du site web ? (je parle du code source de l'application web, pas de la source HTML)

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    c'est un site distant que je n'ai pas créer je veux simplement me logguer dessus, donc je n'ai pas accès aux fichiers sources (si c'est cela que tu veux dire).

    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. J'ai repéré le formulaire d'authentification pour passer mes identifiants de connexion en paramètre.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Le problème est que l'ensemble des paramètres que ton browser envoie n'est pas le même que ton application envoie. Je te conseille d'utiliser Firefox et son extension web developer et de vérifier les en-têtes HTTP envoyées par Firefox lorsque tu accèdes à la zone protégée. Reproduis ces en-têtes avec ton application, cela devrait fonctionner.

    P.S. Au cas où, les en-têtes HTTP sont ce qu'on appelle les headers !

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    je viens d'installer le plugin web developer comme tu me l'a dit!
    cependant, je ne l'ai jamais utilisé...
    je ne vois pas comment réaliser ce que tu me dis...pourrais tu me donner un peu plus de précision s'il te plait?

    voila ce que j'ai trouvé pour les en-tête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    En-têtes HTTP (réponses) - https://www.xing.com/app/startpage?op=home;from_login=1
     
    Server: Apache
    X-XSS-Protection: 0
    Vary: Accept-Encoding
    Content-Encoding: gzip
    X-Cnection: close
    Content-Type: text/html; charset=UTF-8
    X-UA-Compatible: IE=8
    Date: Wed, 03 Feb 2010 13:28:32 GMT
    Content-Length: 2695
    Connection: keep-alive
    Cache-Control: private
    Expires: Now
    Pragma: no-cache
     
    200 OK

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    je vois déjà que t'es en https alors que ton code utilise http.
    Ensuite, ce ne sont pas les entêtes de la réponse qui nous intéressent, mais les entête de la requete, je ne pense pas qu'on y aie accès depuis webdevelopper.

  11. #11
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    oui, le S du https est un oublie, ça c'est corrigé.
    mais le résultat est le même!!

    Je ne vois pas comment procéder pour arriver à établir une connexion avec mes identifiants...

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    change l'identifiant de http-client (user-agent) pour imiter celui de firefox (ça contourne une partie des protections anti bots) ensuite vérifie que tu as bien rempli tous les champs. Regarde aussi à d'abord requerir la page de login de base. En effet, certaines application refusent un login si elle n'ont pas au préalable envoyé la demande de login, ca complique les attaques par injection de cookies, entre autres.

  13. #13
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    change l'identifiant de http-client (user-agent) pour imiter celui de firefox (ça contourne une partie des protections anti bots) ensuite vérifie que tu as bien rempli tous les champs. Regarde aussi à d'abord requerir la page de login de base. En effet, certaines application refusent un login si elle n'ont pas au préalable envoyé la demande de login, ca complique les attaques par injection de cookies, entre autres.
    le site ou je souhaite me logguer est le suivant : www.xing.com
    c'est un réseau social professionnel.

    je ne vois pas bien ce que tu veux dire par "l'identifiant de http-client (user-agent) pour imiter celui de firefox"
    j'avoue que je suis dans le flou la

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    le user-agent est un chaine de caractères qui itdentifie ton navigateur (niom, version, système d'exploitation). Par défaut http-client utilise le siens, il n'est pas impossible que le site mentionné le refuse.

    Je constate aussi que les paramètre que tu passe au login ne sont pas bons. Je ne vois ni de email ni de password dans le formulaire, par contre je vois "op", "dest", "login_user_name", "login_password" et un "login-button". Si tu veux simuler le login d'un browser, va falloir tout fournir au serveur

  15. #15
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    J'ai modifié mon code en fonction de tous les champs envoyer par le formulaire ce qui me donne :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    // Create an instance of HttpClient.
    	    HttpClient client = new HttpClient();
     
    	    //utilisation du user-agent de firefox
    	    Header header = new Header("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
     
     
    	    PostMethod method = new PostMethod("https://www.xing.com/app/startpage");
     
    	    method.setRequestHeader(header);
    	    method.addParameter("login_user_name", "xxxxxxxxx@gmail.com");
    	    method.addParameter("login_password", "xxxxxxxxx");
    	    method.addParameter("op", "login");
    	    method.addParameter("dest", "/app/startpage?op=home;from_login=1");
    	    method.addParameter("perm", "false");
    //	    
    //	    
    	    try {
    		      // Execute the method.
    //	    	 
    		      //method.setRequestBody(data);
    		      int statusCode = client.executeMethod(method);
    		      if (statusCode != HttpStatus.SC_OK) {
    		        System.err.println("Method failed: " + method.getStatusLine());
     
    		        // si il y a une redirection on l'utilise
    		        if (statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
    		        	String redirectLocation = "";
    		            Header locationHeader = method.getResponseHeader("location");
    		            if (locationHeader != null) {
    		                redirectLocation = locationHeader.getValue();
    		            }
    		            System.out.println(redirectLocation);
    		            method = new PostMethod(redirectLocation);
     
     
    		    	    statusCode = client.executeMethod(method);
     
     
    		      	}
    		      }
     
    		      // Read the response body.
    		      byte[] responseBody = method.getResponseBody();
    //		      
     
    		      // Deal with the response.
    		      // Use caution: ensure correct character encoding and is not binary data
    		      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 {
    		      // Release the connection.
    		      method.releaseConnection();
     
    		    }


    J'ai ajouté en plus une vérification si une redirection est effectuée (car c'est le cas sur le site que je pointe).
    Mais le problème persiste, on revient toujours à la page d'accueil.

  16. #16
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    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 java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    // Create an instance of HttpClient.
    		HttpClient client = new HttpClient();
     
     
    		// utilisation du user-agent de firefox
    		Header header = new Header("User-Agent", "Mozilla/5.0");
     
     
    		PostMethod method = new PostMethod("https://www.xing.com/app/user");
     
    		method.setRequestHeader(header);
    		method.addParameter("login_user_name", "xxxxxx@gmail.com");
    		method.addParameter("login_password", "xxxxxxx");
    		method.addParameter("op", "login");
    		method.addParameter("dest", "/app/startpage?op=home;from_login=1");
    		method.addParameter("perm", "true");
     
     
    		try {
     
    			// Execute the method.   	 
    			int statusCode = client.executeMethod(method);
     
     
    			if (statusCode != HttpStatus.SC_OK) {
    				System.err.println("Method failed: " + method.getStatusLine());
     
    				// si il y a une redirection on l'utilise
    				while (statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
    					String redirectLocation = "";
     
    					//on récupère l'url de la redirection
    					Header locationHeader = method.getResponseHeader("location");
    					if (locationHeader != null) {
    						redirectLocation = locationHeader.getValue();
    					}
     
    					System.out.println(redirectLocation);
     
    					method = new PostMethod(redirectLocation);
    					method.setRequestHeader(header);
     
    					statusCode = client.executeMethod(method);
     
     
     
    				}
    			}
     
     
    			System.out.println("-------------------------------------------------------------");
    			// Read the response body.
     
    			byte[] responseBody = method.getResponseBody();
    			// Deal with the response.
    			// Use caution: ensure correct character encoding and is not binary
    			// data
    			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 {
    			// Release the connection.
    			//method.releaseConnection();
     
    		}


    Merci pour votre aide tchize_ et dingoth

  17. #17
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'ai un problème similaire pour me connecter à un site, j'ai remarqué notamment quelques différences :

    Le formulaire fait appel à un service : "https://cas.univ-bpclermont.fr/cas/login?service=http://ent.univ-bpclermont.fr/Login"

    Le texte retourné dans la console eclipse fait apparaître un jsessionid dans la partie action du formulaire.
    J'ai donc trouver ce post (http://www.developpez.net/forums/d86...ication-realm/) qui parle d'une authentification realm mais ne vois pas comment la mettre en oeuvre dans mon cas.


    Voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    package metier;
    import java.io.IOException;
     
    import org.apache.commons.httpclient.Header;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.UsernamePasswordCredentials;
    import org.apache.commons.httpclient.auth.AuthScope;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
     
    /**
     * A simple example that uses HttpClient to perform a GET using Basic
     * Authentication. Can be run standalone without parameters.
     *
     * You need to have JSSE on your classpath for JDK prior to 1.4
     *
     * @author Michael Becke
     */
    public class BasicAuthentificationExample 
    {
     
        /**
         * Constructor for BasicAuthenticatonExample.
         */
        public BasicAuthentificationExample() {
            super();
        }
     
        public static void main(String[] args) throws Exception 
        {
          HttpClient client = new HttpClient();
     
          // utilisation du user-agent de firefox
          Header header = new Header("User-Agent", "Mozilla/5.0" );
     
     
          PostMethod method = new PostMethod("https://cas.univ-bpclermont.fr/cas/login?service=http://ent.univ-bpclermont.fr/Login" );
     
          method.setRequestHeader(header);
          method.addParameter("username", "xxx" );
          method.addParameter("password", "xxx" );
          method.addParameter("warn","on");
     
          try {
     
           // Execute the method.     
           int statusCode = client.executeMethod(method);
     
     
           if (statusCode != HttpStatus.SC_OK) {
            System.err.println("Method failed: " + method.getStatusLine());
     
            // si il y a une redirection on l'utilise
            while (statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
             String redirectLocation = "";
     
             //on récupère l'url de la redirection
             Header locationHeader = method.getResponseHeader("location" );
             if (locationHeader != null) {
              redirectLocation = locationHeader.getValue();
             }
     
             System.out.println(redirectLocation);
     
             method = new PostMethod(redirectLocation);
             method.setRequestHeader(header);
     
             statusCode = client.executeMethod(method);
     
            }
           }
     
     
           System.out.println("-------------------------------------------------------------" );
           // Read the response body.
     
           byte[] responseBody = method.getResponseBody();
           // Deal with the response.
           // Use caution: ensure correct character encoding and is not binary
           // data
           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 {
           // Release the connection.
           //method.releaseConnection();
     
          }
        }
    }
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jour des articles sur un site avec Java (JEE)
    Par zikyoubi dans le forum Développement Web en Java
    Réponses: 13
    Dernier message: 25/09/2013, 23h06
  2. Connexion sur un site avec BDD mysql
    Par garona dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2011, 09h20
  3. Se connecter sur un site avec Java
    Par Mithandir dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 30/12/2008, 11h35
  4. dessiner des cercles sur une image avec java
    Par inès83 dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 04/05/2008, 18h34
  5. programmer sur ecrans "tactiles" avec java
    Par itmak dans le forum Général Java
    Réponses: 3
    Dernier message: 15/07/2007, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo