поддержание постоянного http-соединения - PullRequest
1 голос
/ 20 октября 2010

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

Ответы [ 2 ]

3 голосов
/ 20 октября 2010

Http не является постоянным протоколом соединения.Вам следует подумать о выдаче одного http-запроса для каждого набора данных, который необходимо отправить.

Если постоянное соединение является обязательным (но я не понимаю, что заставило бы вас это сделать), вам придется работатьс протоколом TCP ... и вы не сможете использовать сервлет на стороне сервера, а определенное приложение будет прослушивать определенный порт TCP.

0 голосов
/ 21 октября 2010

Это звучит очень похоже на то, как если бы вы повторно использовали существующий URLConnection вместо создания нового для каждого запроса и что вы подавляете исключения с помощью пустых блоков catch и / или игнорируетеstderr.

Для каждого независимого запроса вы должны создать new URLConnection.

URL url = new URL("http://example.com");

// First request.
URLConnection connection1 = url.openConnection();
// Process it...

// Second request.
URLConnection connection2 = url.openConnection();
// Process it...

// Etc...

Управление сеансами появляется только тогда, когда сервлет хранит что-то в HttpSession, к которому вы хотели бы повторно обращаться в последующих запросах.Похоже, это не так.

...