Android HttpURLConnection: почему Linux постоянно создает файл сессии - PullRequest
1 голос
/ 28 января 2012

Я пишу приложение для Android на основе LAMP.
В приложении есть функция входа в систему.
Все рабочие функции безупречны.Но,

Почему Linux создает файлы сеансов каждый раз
только когда я подключаюсь к телефону, использующему httpURLConnection ???

Когда я подключаю веб-страницу без входа в систему через WebBrowser (Chrome),
Linux делает файл сеанса пустым <--- (A) <br>

А затем я подключаю веб-страницу с логином также через WebBrowser (Chrome),
Linux создает файл Session, который добавляется в файл сеанса (A).

так.результат.Если я использую веб-браузер, linux создает файл сессии, только 1.

Но!
Когда я подключаюсь по телефону (приложение),
Linux создает файл сессииКаждый раз, когда я вхожу,


Это означает

Вход в приложение -> (Linux делает сеанс)
Backpress -> Вход в приложение -> (Linux делаетсеанс)
backpress -> Вход в приложение -> (Linux делает сеанс)

** Я проверил PHPSESSID в Logcat и Cache SQL, используя менеджер синхронизации cookie

Android HttpURLConnection Header Part Source

    URL urlLogin = new URL(url);
    HttpURLConnection httpConn = (HttpURLConnection) urlLogin.openConnection();
    httpConn.setDefaultUseCaches(true);
    httpConn.setDoInput(true);
    httpConn.setDoOutput(true);
    httpConn.setUseCaches(true);
    httpConn.setInstanceFollowRedirects(false);
    httpConn.setRequestMethod("POST");
    httpConn.setRequestProperty("content-type", "application/x-www-form-urlencoded;charset=utf-8");
    httpConn.setRequestProperty("Connection", "keep-alive");

PHP Серверная часть

<?php
session_start();
require_once "dbconn.php";
require_once "check.php";
require_once "process.php";

$email = $_POST['email'];
$pw = $_POST['pw'];

$process = new Process($_POST);

if ($process->checkLogin()) { //Check Login matches
    $_SESSION['email'] = $email;
    $_SESSION['pw'] = $pw;
    $_SESSION['logged'] = true;

    $errcode = 100;
}

1 Ответ

1 голос
/ 28 января 2012

Предполагая, что "файл сеанса" == "файл cookie сеанса", возможно, вы не включили управление файлами cookie для HttpUrlConnection. Как описано в документации , для этого необходимо использовать CookieHandler и CookieManager:

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