2012-01-28 42 views
1

我正在编写一个基于LAMP的Android应用程序。
应用程序中有一个登录功能。
所有的操作功能都很完美。但是,

Android HttpURLConnection:为什么Linux会在每次都创建会话文件

Why Linux makes session files everytimes
only when I connect on phone which utilizing httpURLConnection ???

当我通过web浏览器(Chrome浏览器),
连接网页没有登录在Linux使得会话文件是空的< ---(A)

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

等等。结果。如果我使用web浏览器,linux会话文件只有1.

但是!
当我的手机(APP),
的Linux使会议文件everytimes如果我登录的连接,


这意味着

应用登录 - >(Linux的使会话)
backpress - >应用程序登录 - >(Linux的使会话)
backpress - >应用程序登录 - >(Linux的使会话)

**我检查PHPSESSID logcat的和高速缓存的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

假设为HttpUrlConnection “会话文件” == “会话cookie”,也许你还没有启用cookie管理。正如描述in the documentation,你需要使用CookieHandlerCookieManager此:

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

Thnxk,但是,CookieHandler.setDefault(NEEDS cookie处理程序变量) – 2012-01-28 14:19:00

+0

和,新CookieManager()< - 显示了这个错误:构造函数CookieManager()不可见 – 2012-01-28 14:19:47

+0

我怀疑你导入了错误的'CookieManager'类。你需要'java.net.CookieManager'。 – CommonsWare 2012-01-28 14:24:44

相关问题