Можете ли вы рассказать мне, как хранить jsessionid в cookie, чтобы его можно было передать сервлету с запросом на отправку? Я использую Apache HttpClient версии 4.0.3. Все решения, которые я нашел, объясняют, как это сделать с HttpClient 3.1. Я прочитал учебник и пробовал это, но он не работает.
HttpPost httppost = new HttpPost(postData);
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId());
cookieStore.addCookie(cookie);
client.setCookieStore(cookieStore);
response = client.execute(httppost);
Изменить - дополнительные пояснения
Я подключаюсь к сервлетам, написанным другом. Я вошел в систему и получил jsessionid
. Теперь я хочу отправить другой запрос и передать jsessionid для цели авторизации.
Сервлет отлично работает, потому что я использовал java HttpURLConnection, установил cookie, передал его, и он сработал. Теперь с HttpClient я не получаю исключений, но код возврата из сервлета друга указывает, что в запросе не было сеанса.
Другое Редактировать - у меня есть одно решение
Я задал параметр заголовка запроса, и он сработал. Сервл понимается sessionid. httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());
Теперь мой вопрос: правильно ли этот метод?