Я использую некоторые веб-сервисы, выполненные в java, с использованием архитектуры Rest, мой клиент - это мобильное приложение, которое использует HttpConnection для извлечения данных. Чтобы контролировать аутентификацию и авторизацию, я использую файлы cookie, управляемые классом @SessionScoped, однако я не знаю, как сделать так, чтобы сеанс сохранялся через запросы. Проблема в основном заключается в том, что я внедряю диспетчер сеансов в другие службы, которые @RequestScoped, однако, поскольку сеанс не сохраняется, я всегда получаю разные экземпляры для класса @SessionScoped, таким образом удаляя все файлы cookie или записи, которые у меня были раньше. Глядя на заголовки запроса, я заметил файл cookie JSESSIONID, я думаю, что он отправляется tomcat для сохранения сеанса, поэтому уже пытался отправить тот же файл cookie в следующем запросе, однако я не получил никаких результатов.
HttpConnection, поддерживающий сеанс
Ответы (1)
Комментарии были правильными... для сохранения сеанса вам просто нужно отправить файл cookie JSESSIONID обратно на сервер в следующем запросе, проблема в этом случае заключалась в том, что HttpConnection в JavaME имеет только метод setRequestProperty для включения значения заголовка, теперь, если вы устанавливаете одно и то же значение два раза, оно перезаписывает последнее. Поскольку я использовал собственный файл cookie и файл cookie JSessionID, я установил их следующим образом:
connection.setRequestProperty("Cookie","sessionId="+ApplicationPreferences.getInstance().getSessionCookieHeader());
connection.setRequestProperty("Cookie","JSESSIONID="+ApplicationPreferences.getInstance().getJavaSessionCookieHeader());
Когда правильный способ сделать это - объединить строки cookie, а затем установить заголовок Cookie со всеми ними:
String myCookies="sessionId="+ApplicationPreferences.getInstance().getSessionCookieHeader()+";"+"JSESSIONID="+ApplicationPreferences.getInstance().getJavaSessionCookieHeader();
person
Pablo
schedule
03.02.2012
HttpURLConnection
? Если это так, перейдите к этому: заголовок stackoverflow.com/questions/2793150/ - person BalusC   schedule 03.02.2012Cookie
и значениемJSESSIONID=C2j31psXI5bEhlXwXdormU3L
. - person BalusC   schedule 03.02.2012addRequestProperty()
? - person BalusC   schedule 03.02.2012