Как обрабатывать сеанс в 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?
Ответы
Ответ 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);
// ...