2013-08-14 3 views
0

В настоящее время я делаю приложение для Android, которое делает POST-запросы на сервер tomcat, который делает сеанс для пользователя, хотя сеансы, похоже, не работают. Я получаю новую сессию с каждым запросом. Есть ли способ сохранить этот сеанс или отслеживать пользователя другим способом? Код для запроса сервера, как правило, выглядит следующим образом:Занятия сервлетами в приложении android

HttpClient client = new DefaultHttpClient(); 

    HttpPost post = HttpPostFactory.getHttpPost("AuthenticateUser"); 

    List<NameValuePair> pairs = new ArrayList<NameValuePair>(); 

      pairs.add(new BasicNameValuePair("option1", option1); 
      pairs.add(new BasicNameValuePair("option2", option2); 

    try { 
     post.setEntity(new UrlEncodedFormEntity(pairs)); 

     HttpResponse response = client.execute(post); 

     StringBuilder builder = new StringBuilder(); 

     Scanner in = new Scanner(response.getEntity().getContent()); 

     while (in.hasNext()) { 
      builder.append(in.nextLine()); 
     } 

     Document doc = DocumentBuilderFactory.newInstance() 
       .newDocumentBuilder() 
       .parse(MyStringUtil.toInputStream(builder.toString())); 

У меня есть полный доступ исходного кода для клиента и сервера, поэтому решение на любом конце будет работать.

ответ

1

Вы продолжаете воссоздать свой HttpClient; если у вас нет собственной реализации хранилища файлов cookie, которая будет хранить куки-файлы через экземпляры или иным образом восстанавливает их, они будут продолжать уходить.

http://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html

+0

Очень ценим! Работал как шарм! Только узнал, как делать запросы POST в java ранее сегодня, поэтому мне еще многое предстоит узнать. – JaySee

0

Я считаю, что кот использует JSESSIONID для поддержания сессий. Это сохраняется как файл cookie. Чтобы сохранить ту же самую сессию, вам нужно отправить файлы cookie вместе со следующим HttpRequest.

Смежные вопросы