71、AndroidでのCookieの読み書き操作
2866 ワード
Cookieは、ユーザーのアイデンティティを識別し、セッション追跡を行うためにユーザーのローカル端末に格納されているデータであり、Androidでもよく使われていますが、次にCookieがAndroidでどのように読み書きされているかを紹介します.Cookieは、サービス側によって生成される文字列です.CookieのURLが必要な場合は、その文字列をHeaderに設定してください.読み書きCookieのシーンを見つけるのは簡単です.
クッキーを書くシーン
例えばログインします.ユーザーが初めてログインに成功したとき、サービス側からCookieを取得し、ユーザーの携帯電話のローカルファイルに格納します.ユーザーが次にアプリケーションを開くと、まずローカルCookieが読み込まれ、Cookieが期限切れになっていない場合は、ユーザーを対応するインタフェースに直接導き、ログインしません.
クッキーを読むシーン
ログインに加えて、ローカルCookie情報をサービス側に一斉に送信する必要がある特殊なサーバリクエストもあります.
直接コードをアップロードし、Cookieを取得します.
Cookieが取得されると、一般的にローカルファイルまたはデータベースに格納されます.Cookie情報を携帯する必要があるurlにアクセスするときは、Cookieを読み出し、Headerに設定します.たとえば、次のようにします.
DEMOダウンロードアドレス:http://download.csdn.net/detail/androidsj/9390712
クッキーを書くシーン
例えばログインします.ユーザーが初めてログインに成功したとき、サービス側からCookieを取得し、ユーザーの携帯電話のローカルファイルに格納します.ユーザーが次にアプリケーションを開くと、まずローカルCookieが読み込まれ、Cookieが期限切れになっていない場合は、ユーザーを対応するインタフェースに直接導き、ログインしません.
クッキーを読むシーン
ログインに加えて、ローカルCookie情報をサービス側に一斉に送信する必要がある特殊なサーバリクエストもあります.
直接コードをアップロードし、Cookieを取得します.
1 /** 2 * Cookie , 3 * @param httpClient 4 */ 5 private void getCookie(DefaultHttpClient httpClient) { 6 List<Cookie> cookies = httpClient.getCookieStore().getCookies(); 7 StringBuffer sb = new StringBuffer(); 8 for (int i = 0; i < cookies.size(); i++) { 9 Cookie cookie = cookies.get(i); 10 String cookieName = cookie.getName(); 11 String cookieValue = cookie.getValue(); 12 if (!TextUtils.isEmpty(cookieName) 13 && !TextUtils.isEmpty(cookieValue)) { 14 sb.append(cookieName + "=" ); 15 sb.append(cookieValue + ";" ); 16 } 17 } 18 Log. e( "cookie", sb.toString()); 19 Util. savePreference( "cookie", sb.toString()); 20 }
Cookieが取得されると、一般的にローカルファイルまたはデータベースに格納されます.Cookie情報を携帯する必要があるurlにアクセスするときは、Cookieを読み出し、Headerに設定します.たとえば、次のようにします.
DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(URLContainer.getPlayHistoryInCloud()); httpGet.setHeader( "Cookie" , Util.getPreference( "cookie")); HttpResponse httpResponse; try { httpResponse = httpClient.execute(httpGet); InputStream is = httpResponse.getEntity().getContent(); String jsonString = Util.convertStreamToString(is); return jsonString; } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
DEMOダウンロードアドレス:http://download.csdn.net/detail/androidsj/9390712