6

サーバー側のセッションはデータベースに保存され、Cookie を使用して維持されます。したがって、すべてのクライアントには、データベース内のセッションと一致する有効な Cookie が必要です。

そしてAndroid側:

DefaultHttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = client.execute(httppost);

すべてのサーバー呼び出しに同じクライアントを使用している場合、クライアントがこれらの Cookie を処理します。

しかし、問題は、クライアントが破棄されると、デバイスが必要とするメモリのために Cookie が失われ、その後のサーバー呼び出しが機能しないことです。

HttpClient永続化する方法はありますか?または、Android側でCookieを維持する通常の方法は何ですか.

4

4 に答える 4

0

以下のコードを試してください:

public static List<Cookie> cookies;

cookies = httpclient.getCookieStore().getCookies();
if (cookies != null) {
            CookieSyncManager.createInstance(MainActivity.activity); 
            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.setAcceptCookie(true);
            for (Cookie cookie : cookies) {

                Cookie sessionInfo = cookie;
                String cookieString = sessionInfo.getName() + "="
                        + sessionInfo.getValue() + "; domain="
                        + sessionInfo.getDomain();
                cookieManager.setCookie(
                        domainUrl,cookieString);
                CookieSyncManager.getInstance().sync();
            }
        }
于 2013-10-08T09:18:25.803 に答える
0

これは Cookie ではないかもしれませんが、役立つかもしれませんhttp://developer.android.com/reference/android/accounts/package-summary.html

于 2013-10-08T09:15:28.657 に答える