【问题标题】:Android HttpURLConnection: Why Linux makes session file in everytimesAndroid HttpURLConnection:为什么 Linux 每次都制作会话文件
【发布时间】:2012-01-28 13:40:28
【问题描述】:

我正在编写一个基于 LAMP 的 Android 应用。
应用中有登录功能。
各项操作功能完善。但是,

为什么 Linux 每次都生成会话文件
只有当我在使用 httpURLConnection 的手机上连接时 ???

当我通过 WebBrowser(Chrome)无需登录连接网页时,
Linux 使 Session 文件为空

然后,我也通过 WebBrowser(Chrome) 连接网页登录
Linux制作会话文件,附加在(A)会话文件中。

所以。结果。如果我使用 webbrowser,linux 会生成会话文件,只有 1 个。

但是!
当我在手机(应用程序)上连接时,
Linux 每次都会生成会话文件如果我登录,


意思是

应用登录 ->(Linux 建立会话)
backpress -> 应用登录 ->(Linux 进行会话)
backpress -> 应用登录 ->(Linux 进行会话)

** 我在 Logcat 中检查了 PHPSESSID,并使用 cookie 同步管理器缓存 SQL

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;
}

【问题讨论】:

    标签: java php android session httpurlconnection


    【解决方案1】:

    假设“会话文件”==“会话 cookie”,可能您还没有为 HttpUrlConnection 启用 cookie 管理。如in the documentation 所述,您需要为此使用CookieHandlerCookieManager

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

    【讨论】:

    • Thnxk,但是,CookieHandler.setDefault(NEEDS cookie 处理程序变量)
    • 还有,new CookieManager()
    • 我怀疑你导入了错误的CookieManager 类。你需要java.net.CookieManager
    • suck....这是 java.net.CookieManager 但是,这是 android SDK 版本问题....:
    • @JuHyunLee:如果您使用的是 Android 2.2,请切换到使用 Android 内置的 HttpClient 库 (org.apache.http)。只要您为每个请求重复使用相同的 HttpClient 对象,会话 cookie 就会为您维护。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多