web-dev-qa-db-fra.com

Comment gérer la session dans HttpClient 4.1

J'utilise HttpClient 4.1.1 pour tester l'API REST de mon serveur.

Je peux réussir à me connecter semble fonctionner correctement mais quand j'essaye de faire autre chose, j'échoue.

J'ai très probablement un problème lors de la configuration du cookie dans la prochaine demande.

Voici mon code actuellement:

HttpGet httpGet = new HttpGet(<my server login URL>);
httpResponse = httpClient.execute(httpGet)
sessionID = httpResponse.getFirstHeader("Set-Cookie").getValue();
httpGet.addHeader("Cookie", sessionID);
httpClient.execute(httpGet);

Existe-t-il un meilleur moyen de gérer le paramètre de session/cookies dans le package HttpClient?

38
special0ne

La bonne façon est de préparer un CookieStore que vous devez définir dans le HttpContext que vous transmettez à son tour tous les HttpClient#execute() appel.

HttpClient httpClient = new DefaultHttpClient();
CookieStore cookieStore = new BasicCookieStore();
HttpContext httpContext = new BasicHttpContext();
httpContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
// ...

HttpResponse response1 = httpClient.execute(method1, httpContext);
// ...

HttpResponse response2 = httpClient.execute(method2, httpContext);
// ...
70
BalusC