Подтвердить что ты не робот

Как обрабатывать сеанс в HttpClient 4.1

Я использую HttpClient 4.1.1 для проверки API REST моего сервера.

Мне удается войти в систему, похоже, работает нормально, но когда я пытаюсь сделать что-либо еще, я терплю неудачу.

Скорее всего, у меня возникла проблема с настройкой файла cookie в следующем запросе.

Вот мой код:

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);

Есть ли лучший способ управлять настройкой сеанса/файлов cookie в пакете HttpClient?

4b9b3361

Ответ 1

Правильный способ - подготовить CookieStore, который необходимо установить в HttpContext, который вы, в свою очередь, передаете каждому вызову HttpClient#execute().

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);
// ...