我正在编写一个基于 LAMP 的 Android 应用程序。
应用程序中有登录功能。
所有的操作功能都很完善。但是,
Why Linux makes session files everytimes
only when I connect on phone which utilizing httpURLConnection ???
当我通过 WebBrowser(Chrome) 未登录连接网页时,
Linux 使 session 文件为空 <---(A)
然后,我也通过 WebBrowser(Chrome) 登录连接网页,
Linux 生成 Session 文件,附加在 (A) session 文件中。
所以。结果。如果我使用 webbrowser,linux 生成 session 文件,只有 1 个。
但是!
当我连接手机(应用程序)时,
Linux 每次都生成 session 文件 如果我登录,
意思是
App登录->(Linux建立 session )
backpress -> App Login -> (Linux makes session)
backpress -> App Login -> (Linux makes session)
** 我检查了 Logcat 中的 PHPSESSID 和缓存 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;
}
最佳答案
假设“session file”==“session cookie”,也许你没有为HttpUrlConnection
启用cookie管理。如上所述in the documentation ,你需要为此使用 CookieHandler
和 CookieManager
:
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
关于java - Android HttpURLConnection : Why Linux makes session file in everytimes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045670/