71、AndroidでのCookieの読み書き操作

2866 ワード

Cookieは、ユーザーのアイデンティティを識別し、セッション追跡を行うためにユーザーのローカル端末に格納されているデータであり、Androidでもよく使われていますが、次にCookieがAndroidでどのように読み書きされているかを紹介します.Cookieは、サービス側によって生成される文字列です.CookieのURLが必要な場合は、その文字列をHeaderに設定してください.読み書きCookieのシーンを見つけるのは簡単です.
クッキーを書くシーン
例えばログインします.ユーザーが初めてログインに成功したとき、サービス側から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