Apache HttpClient 4.0.3 - как мне установить cookie с идентификатором сеанса для запроса POST?

не могли бы вы сказать мне, как сохранить 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 ());

Теперь мой вопрос: правильный ли этот метод?

45
задан peterh says reinstate Monica 24 July 2018 в 07:08
поделиться