J'utilise HttpClient 4.1.2
HttpGet httpget = new HttpGet(uri);
HttpResponse response = httpClient.execute(httpget);
Alors, comment puis-je obtenir les valeurs des cookies ?
J'utilise HttpClient 4.1.2
HttpGet httpget = new HttpGet(uri);
HttpResponse response = httpClient.execute(httpget);
Alors, comment puis-je obtenir les valeurs des cookies ?
Je ne sais pas pourquoi la réponse acceptée décrit une méthode getCookieStore()
qui n'existe pas. C'est inexact.
Vous devez créer un magasin de cookies au préalable, puis créer le client à l'aide de ce magasin de cookies. Ensuite, vous pouvez vous référer plus tard à ce magasin de cookies pour obtenir une liste de cookies.
/* init client */
HttpClient http = null;
CookieStore httpCookieStore = new BasicCookieStore();
HttpClientBuilder builder = HttpClientBuilder.create().setDefaultCookieStore(httpCookieStore);
http = builder.build();
/* do stuff */
HttpGet httpRequest = new HttpGet("http://stackoverflow.com/");
HttpResponse httpResponse = null;
try {httpResponse = http.execute(httpRequest);} catch (Throwable error) {throw new RuntimeException(error);}
/* check cookies */
httpCookieStore.getCookies();
Encore une pour faire démarrer d'autres personnes, voyant des méthodes inexistantes se gratter la tête...
import org.apache.http.Header;
import org.apache.http.HttpResponse;
Header[] headers = httpResponse.getHeaders("Set-Cookie");
for (Header h : headers) {
System.out.println(h.getValue().toString());
}
Cela imprimera les valeurs des cookies. La réponse du serveur peut avoir plusieurs Set-Cookie
, vous devez donc récupérer un tableau de Header
s
Sur la base de l'exemple de la question initiale, le moyen d'accéder au CookieStore
après l'exécution d'une requête HTTP consiste à utiliser l'objet d'état d'exécution HttpContext
HttpContext
référencera un magasin de cookies (nouveau si aucun CookieStore n'a été spécifié dans HttpClientBuilder) après l'exécution d'une requête.
HttpClientContext context = new HttpClientContext();
CloseableHttpResponse response = httpClient.execute(request, context);
CookieStore cookieStore = context.getCookieStore();
Ceci s'applique sur httpcomponents-client:4.3+
lorsque le ClosableHttpClient
été introduit.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.