Ответ 1
Обычно сеансы не сохраняются на основе самого http-соединения. Это не имеет никакого смысла. Сессии обычно сохраняются в памяти через файл cookie на стороне клиента и информацию о сеансе на стороне сервера. То, что вы должны сделать, это сохранить файлы cookie (ы), которые вы получаете, а затем установить эти (эти) файлы cookie при следующем подключении к серверу.
Чтобы узнать больше о том, как работать с сеансами и куки с классом HttpUrlConnection, прочитайте документацию: http://developer.android.com/reference/java/net/HttpURLConnection.html
Вот немного отрывок, чтобы вы начали:
Чтобы установить и поддерживать потенциально долгоживущий сеанс между клиент и сервер, HttpURLConnection включает в себя расширяемый файл cookie менеджер. Включите управление файлами cookie VM с помощью CookieHandler и CookieManager:
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
EDIT:
Для тех, кто работает с уровнями API 8 или ниже, вам нужно будет использовать библиотеку Apache!
Здесь приведен код ссылки:
// Create a local instance of cookie store
CookieStore cookieStore = new BasicCookieStore();
// Create local HTTP context
HttpContext localContext = new BasicHttpContext();
// Bind custom cookie store to the local context
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
HttpGet httpget = new HttpGet("http://www.google.com/");
System.out.println("executing request " + httpget.getURI());
// Pass local context as a parameter
HttpResponse response = httpclient.execute(httpget, localContext);
Приведенный выше код был взят из примеров библиотеки Apache. Это можно найти здесь: http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientCustomContext.java
ИЗМЕНИТЬ 2: Прояснение:
Для библиотеки Apache вам нужно как-то "подключить" объект управления cookie с объектом соединения, и вы делаете это через объект HttpContext.
В случае HttpUrlConnection, что не нужно. когда вы используете статический метод CookieHandler setDefault, вы устанавливаете общесистемный cookieHandler. Ниже выдержки из CookieHandler.java. Обратите внимание на имя переменной (из репозитория проекта Open Source Project (AOSP)):
37 /**
38 * Sets the system-wide cookie handler.
39 */
40 public static void setDefault(CookieHandler cHandler) {
41 systemWideCookieHandler = cHandler;
42 }