Cookie是为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据,在Android中也经常用到,接下来我们介绍Cookie在Android里是如何进行读写的。
Cookie其实就是一个字符串,由服务端生成。请求某些需要Cookie的URL的时候,将该字符串设置到Header中即可。
找到一个读写Cookie的场景还算容易:

写Cookie的场景

比如登录。在用户首次登录成功的时候,我们会从服务端取得Cookie,存储在用户手机的本地文件中。在用户下次打开应用时,会首先读取本地Cookie,Cookie没有过期的话,直接引导用户到相应界面,不再进行登录。

读Cookie的场景

除了登录之外,还有某些特殊的服务器请求,需要将本地Cookie信息一起发给服务端。

直接上代码,获取Cookie:

      /**      * 获取标准 Cookie ,并存储      * @param httpClient      */      private void getCookie(DefaultHttpClient httpClient) {           List<Cookie> cookies = httpClient.getCookieStore().getCookies();           StringBuffer sb = new StringBuffer();           for (int i = 0; i < cookies.size(); i++) {               Cookie cookie = cookies.get(i);               String cookieName = cookie.getName();               String cookieValue = cookie.getValue();               if (!TextUtils.isEmpty(cookieName)                        && !TextUtils.isEmpty(cookieValue)) {                   sb.append(cookieName + "=" );                   sb.append(cookieValue + ";" );              }          }          Log. e( "cookie", sb.toString());          Util. savePreference( "cookie", sb.toString());     }     

获得了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://www.67tgb.com/?p=536

欢迎转载,转载请注明出处:望月听涛


更多相关文章

  1. 关于多设备登录的思考与实现
  2. YouTube向美国所有Android用户推送画中画功能
  3. Android(安卓)API Guides---Making Applications Accessible
  4. Android实验——实验1 用户界面:线性布局
  5. android中intent的详解、用法、参数
  6. 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(三)——搭建
  7. android用户输入系统详细说明
  8. [Android]用户界面设计
  9. android用户输入系统

随机推荐

  1. android的测试工具CTS
  2. UI布局参数(持续更新)
  3. Android之路之十一(SharedPreferences&SQL
  4. Android作为客户端,PC作为服务端:实现网络
  5. Android应用资源总结二:Android的问号?和@
  6. 记android学习之路----android中对json数
  7. Android常见问题总结(二)
  8. Android(安卓)中的TabHost控件的使用
  9. Android Studio更新升级方法
  10. 两分钟理解Android中PX、DP、SP的区别