Повторное использование HttpURLConnection для поддержания сеанса.

У нас есть приложение для Android, которое требует от пользователя ввести ответ на капчу. Капча генерируется на нашем сервере. При ответе он отправляется на сервер для проверки.

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

Есть ли способ сохранить соединение или мне следует пойти другим путем? Я знаю, что в аналогичном приложении для iPhone они остаются «подключенными» и, следовательно, имеют один и тот же идентификатор сеанса.

Редактировать:

    CookieManager cookieManager = new CookieManager();  
    CookieHandler.setDefault(cookieManager);

    URL urlObj = new URL(urlPath);
    conn = (HttpURLConnection) urlObj.openConnection();

    if (urlPath.toLowerCase().startsWith("https:")) {
        initializeHttpsConnection((HttpsURLConnection) conn);
    }
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Language", "en-US");
    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    conn.setRequestProperty("Content-Length", Integer.toString(bodyData.length));
    if (_sessionIdCookie != null) {
        conn.setRequestProperty("Cookie", _sessionIdCookie);
    }
    // Connect
    conn.setDoInput(true);
    conn.setDoOutput(true);
    conn.connect();
12
задан theblitz 23 May 2012 в 08:37
поделиться