httpclient : Problème de cookie de session
Bonjour à tous,
J'ai commencé hier soir à développer un petit programme en Java pour pouvoir me connecter à un site puis d'y récupérer des informations.
La phase d'identification sur le site semble bien se passer et je récupère bien le cookie de session associé.
A l'étape suivante, j'effectue une requête de type GET pour récupérer le code source d'une page du site sur lequel je viens de me connecter. Mais là problème, le site me demande de me reconnecter alors que je lui fournis bien le cookie de session.
J'ai essayé de trouver une solution sur le net mais j'ai pas trouvé grand chose qui pourrait me permettre de régler ce problème.
Voici le code Java (désolé pour la propreté du code mais c'est du rapide) :
Code:
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
|
public static void main(String args[]) {
HttpResponse r;
int nbRow;
/*CONNEXION COMPTE USER*/
//Création du client et ajout des paramètres du formulaire
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter("email", email);
client.getParams().setParameter("password", password);
//Exécution du formulaire en méthode POST
try {
r = client.execute(new HttpPost(url));
System.out.println("CONNEXION COMPTE USER");
System.out.println(client.getCookieStore());
System.out.println("-------------------------");
System.out.println(r.getStatusLine());
System.out.println("-------------------------");
BufferedReader br = new BufferedReader(new InputStreamReader(r.getEntity().getContent()));
nbRow = 0;
while(((br.readLine()) != null)) {
nbRow++;
}
br.close();
System.out.println(nbRow);
System.out.println("");
System.out.println("-------------------------");
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*AFFICHAGE LISTE INFORMATIONS*/
try {
r = client.execute(new HttpGet(urlCheck));
System.out.println("AFFICHAGE INFORMATIONS");
System.out.println(client.getCookieStore());
System.out.println("-------------------------");
System.out.println(r.getStatusLine());
System.out.println("-------------------------");
BufferedReader br = new BufferedReader(new InputStreamReader(r.getEntity().getContent()));
String readLine = "";
nbRow = 0;
while(((readLine = br.readLine()) != null)) {
nbRow++;
//System.out.println(readLine);
}
br.close();
System.out.println(nbRow);
System.out.println("-------------------------");
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} |
La console m'affiche ceci :
Citation:
CONNEXION COMPTE USER
[[version: 0][name: x_session][value: a%3A4%3A%19s%3A10%3A%22session_id%22%1As%3A32%3A%
2206c347a7d843b029a1976cfa8141ce73%22%3Bs%3A10%3A%22
ip_address%22%3Bs%3A11%19%2210.18.5.254%22%3Bs%3A10%3A
%22user_agent%22%3Bs%3A34%3A%22Apache-HttpClient%2F4.1.2+%28java+1.5%29%22%3Cs%3A13%3A%22
last_activity%22%3Bs%3B10%3A%221322677361%22%3B%7D82
7a1dcc6faac50d4916e43278fecc00][domain: .x.com][path: /]
[expiry: Thu Dec 01 19:22:41 CET 2011]]
-------------------------
HTTP/1.1 200 OK
-------------------------
512
-------------------------
AFFICHAGE INFORMATIONS
[[version: 0][name: x_session][value: a%3A4%3A%19s%3A10%3A%22session_id%22%1As%3A32%3A%
2206c347a7d843b029a1976cfa8141ce73%22%3Bs%3A10%3A%22
ip_address%22%3Bs%3A11%19%2210.18.5.254%22%3Bs%3A10%3A
%22user_agent%22%3Bs%3A34%3A%22Apache-HttpClient%2F4.1.2+%28java+1.5%29%22%3Cs%3A13%3A%22
last_activity%22%3Bs%3B10%3A%221322677361%22%3B%7D82
7a1dcc6faac50d4916e43278fecc00][domain: .x.com][path: /]
[expiry: Thu Dec 01 19:22:41 CET 2011]]
-------------------------
HTTP/1.1 200 OK
-------------------------
515
-------------------------
Merci d'avance pour votre aide.
A+