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 :

HTTPClient problème session et cookie


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Par défaut HTTPClient problème session et cookie
    Bonjour informaticiens et informaticiennes

    Je me tourne vers vous aujourd'hui car la je bloque sur un truc qui je suis sur et tout bête... Je m'excuse par avance de mes explications un peu vague, j'essaye de m'amélioré

    Voila mon problème :

    En utilisant l'APi HTTPclient, j'essaye de me connecter à un de mes site web en saisissant sur une interface graphique l'identifiant et le mot de passe. Jusqu'ici tout fonctionne très bien, je me connecte au site je récupère le cookie de session et je décide par la suite d'accéder à une seconde page du site en récupérant le code source pour vérifié que je suis bien encore authentifié et ça marche!!!!

    Mais pour être sur de vérifier que ma session est toujours active, je décide de créer un second bouton sur mon interface pour accéder à une autre page du site ou il faut être identifié et en utilisant une autre classe. Et la... sa fonctionne plus, donc c'est à ce moment que je me tourne vers vous

    Voila mon code qui est surement un peu crado, mais je voudrai bien comprendre comment fonctionne l'utilisation de session et cookie :

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
     
    import org.apache.commons.httpclient.Cookie;
    import org.apache.commons.httpclient.HttpClient;
     
    import org.apache.commons.httpclient.cookie.CookiePolicy;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Map;
    import java.util.Scanner;
    import javax.print.DocFlavor.STRING;
     
    class Connection {
     
        public static int Connection(String lgn,String pwd) {
     
        int var = 0;
        int pos = 0;
    // On cree le client
     
    HttpClient client = new HttpClient();
     
    // Le HTTPMethod qui sera un Post en lui indiquant l’URL du traitement du formulaire
     
    PostMethod methode = new PostMethod("http://www.**********.com/test/Finalisation/window/TraitementConn.php");
     
    // On ajoute les parametres du formulaire
     
    methode.addParameter("lgn", lgn); // (champs, valeur)
    methode.addParameter("pwd", pwd);
     
    // Le buffer qui nous servira a recuperer le code de la page
     
    BufferedReader br = null;
     
    try
     
    {
     
     
    int retour = client.executeMethod(methode);
     
    // Pour la gestion des erreurs ou un debuggage, on recupere le nombre renvoye.
     
    System.out.println(" La reponse de executeMethod est :  " + retour);
     
    br = new BufferedReader(new InputStreamReader(methode.getResponseBodyAsStream()));
     
    System.out.println(methode.getResponseHeaders());
     
    Cookie[] cookies = client.getState( ).getCookies( );
    for( int i = 0; i < 2; i++ ) {
        Cookie cookie = cookies[i];
        String domain = cookie.getDomain( );
        String path = cookie.getPath( );
        String name = cookie.getName( );
        String value = cookie.getValue( );
        System.out.println( "Cookie: " + domain + ", " + path + ", " +
                            name + ", " + value );
    }
     
    System.out.println("*****************************");
     
    String readLine;
     
    @SuppressWarnings("unused")
    String cherche = "Connection réalisée";
     
     
    // Tant que la ligne en cours n’est pas vide
     
    while(((readLine = br.readLine()) != null))
     
    {
     
    System.out.println(readLine);
     
     
    //Ici on vérifie si la connection, c'est bien réalisé
     
    pos = readLine.indexOf("Connection réalisée");
    if (pos >= 0) 
    {
       System.out.println(pos);
       var = pos;
    }
     
    }
     
    }
     
    catch (Exception e)
     
    {
     
    System.err.println(e); // erreur possible de executeMethod
     
    }
     
     
     
    finally
     
    {
     
    // On ferme la connexion
     
    methode.releaseConnection();
     
    if(br != null)
     
    {
     
    try
     
    {
     
    br.close(); // on ferme le buffer
     
    }
     
    catch (Exception e) { /* on fait rien */ }
     
    }
     
    }
     
    //Ici on ouvre une nouvelle page ou l'on doit être identifier
     
    GetMethod methodes = new GetMethod("http://www.********.com/test/Finalisation/window/func-modalbox-test.php");
    try
     
    {
     
     
    int retour = client.executeMethod(methodes);
     
    // Pour la gestion des erreurs ou un debuggage, on recupere le nombre renvoye.
     
    System.out.println(" La reponse de executeMethod est :  " + retour);
     
    br = new BufferedReader(new InputStreamReader(methodes.getResponseBodyAsStream()));
     
    String readLine;
     
    // Tant que la ligne en cours n’est pas vide
     
    while(((readLine = br.readLine()) != null))
     
    {
     
    System.out.println(readLine);
     
     
     
    }
     
    }
     
    catch (Exception e)
     
    {
     
    System.err.println(e); // erreur possible de executeMethod
     
    }
    int co;
    if (var > 0) 
    {
       co = 1;
    }
    else
    {
       co = 0;
     
    }
    return co;
    }
     
    }
    Cette classe me permet bien de m'identifier correctement et d'accéder à une autre page tout en restant identifié.

    Maintenant j'ai créé un second bouton sur l'interface utilisant une autre classe pour accéder à la même page du site ou l'on doit être identifier

    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
     
    import org.apache.commons.httpclient.cookie.CookiePolicy;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Map;
    import java.util.Scanner;
    import javax.print.DocFlavor.STRING;
     
    public class testCO {
     
        static int testCo() {
     
        HttpClient client = new HttpClient();    
        GetMethod methodes = new GetMethod("http://www.******.com/test/Finalisation/window/func-modalbox-test.php");
     
     
    try
     
    {
     
    int retour = client.executeMethod(methodes);
     
    // Pour la gestion des erreurs ou un debuggage, on recupere le nombre renvoye.
     
    System.out.println(" La reponse de executeMethod est :  " + retour);
    BufferedReader br = null;
    br = new BufferedReader(new InputStreamReader(methodes.getResponseBodyAsStream()));
     
    String readLine;
     
    // Tant que la ligne en cours n’est pas vide
     
    while(((readLine = br.readLine()) != null))
     
    {
     
    System.out.println(readLine);
     
     
     
    }
     
    }
     
    catch (Exception e)
     
    {
     
    System.err.println(e); // erreur possible de executeMethod
     
    }
    int co = 1;
     
    return co;
    }
     
    }
    Après mettre connecté je décide d'utilisé le second bouton et la le site ne me voit plus comme identifié donc j'ai droit à un code source de la page "vous n'êtes pas enregistré cette fois"

    Comment puis-je maintenir ma session ouverte après connections en utilisant une autre classe?

    Je vous remercie d'avance pour l'aide que vous m'apporterai

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Par défaut
    Bon j'ai trouvé la solution grâce à un gentil informaticien :p

    Donc pour ceux qui auront se soucie, il faut retourner la valeur de l'HttpClient dans la classe connection et ensuite la renvoyé durant l'usage d'une autre classe

    Voili voilou, je reviendrai vers vous si je bloque encore ^^

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/02/2019, 19h16
  2. httpclient : Problème de cookie de session
    Par AlexKidd29 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 01/12/2011, 19h44
  3. HttpClient - Problème de session
    Par vantom dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 17/01/2009, 12h37
  4. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 17h13
  5. [debutant][jsp]Passage d'entier avec une session sans cookie
    Par o151181 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/02/2004, 18h22

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