安卓会话管理

是否有用于 Android 会话管理的特定库?我需要在普通的 Android 应用程序中管理我的会话,而不是在 .我可以从我的post方法设置会话。但是当我发送另一个请求时,该会话丢失了。有人可以帮我这件事吗?WebView

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("My url");

HttpResponse response = httpClient.execute(httppost);
List<Cookie> cookies = httpClient.getCookieStore().getCookies();

if (cookies.isEmpty()) {
    System.out.println("None");
} else {
    for (int i = 0; i < cookies.size(); i++) {
        System.out.println("- " + cookies.get(i).toString());
    }
}

当我尝试访问会话丢失的同一主机时:

HttpGet httpGet = new HttpGet("my url 2");
HttpResponse response = httpClient.execute(httpGet);

我得到登录页面响应正文。


答案 1

这与Android无关。它与Apache HttpClient有关,Apache HttpClient是您用于HTTP访问的库。

会话 Cookie 存储在您的对象中。与其为每个请求创建一个新的请求,不如保留它并重用它,您的会话cookie将被保留。DefaultHttpClientDefaultHttpClient

您可以在此处阅读有关Apache HttpClient的信息,并在此处阅读有关HttpClient中的cookie管理的信息


答案 2

这就是我用于帖子的内容。我可以使用此方法的new,其中会话ID是使用上面的代码从登录脚本中提取的。httpClientsphpsessidPHP

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

nameValuePairs.add(new BasicNameValuePair("PHPSESSID",phpsessid));

推荐