Как обработать сессию в HttpClient 4.1 - PullRequest
37 голосов
/ 08 июня 2011

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

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

Скорее всего, у меня возникла проблема с установкой файла 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 Ответ

68 голосов
/ 08 июня 2011

Правильный способ состоит в том, чтобы подготовить 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);
// ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...