如何在android中对cookie进行读写
如何在android中对cookie进行读写?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
读取cookie:
try { DefaultHttpClienthttpclient=newDefaultHttpClient(); HttpGethttpget=newHttpGet("http://www.hlovey.com"); HttpResponseresponse=httpclient.execute(httpget); HttpEntityentity=response.getEntity(); List<Cookie>cookies=httpclient.getCookieStore().getCookies(); if(entity!=null){ entity.consumeContent(); } if(cookies.isEmpty()){ Log.i(TAG,"NONE"); }else{ for(inti=0;i<cookies.size();i++){ Log.i(TAG,"-domain"+cookies.get(i).getDomain()); Log.i(TAG,"-path"+cookies.get(i).getPath()); Log.i(TAG,"-value"+cookies.get(i).getValue()); Log.i(TAG,"-name"+cookies.get(i).getName()); Log.i(TAG,"-port"+cookies.get(i).getPorts()); Log.i(TAG,"-comment"+cookies.get(i).getComment()); Log.i(TAG,"-commenturl"+cookies.get(i).getCommentURL()); Log.i(TAG,"-all"+cookies.get(i).toString()); } } httpclient.getConnectionManager().shutdown(); }catch(Exceptione){ //Todo }finally{ //Todo }
通过分析com.android.browser的源码,发现android默认的browser增加cookie是在数据库中增加记录,和window不同,win是采用一个txt文本文件的形式来存储cookie。而android是将cookie存储在数据库中。具体的介绍在《android cookie存储位置》一文中有介绍。我们都知道,android每个应用程序的存储空间都是独立的。不管使用preference还是database存储,都会在每个/data/data/package name/下面进行存储(preference存储在/data/data/package name/shared_prefs/xxxx.xml)。前面也说到cookie是存在数据库中,那么如果采用非浏览器访问网络需要保留cookie的话我们就应该在database中建立cookies表,并且存入相应的cookies数据。仿照默认broswer的代码:
/**声明一些数据库操作的常量*/ privatestaticSQLiteDatabasemDatabase=null; privatestaticfinalStringDATABASE_FILE="webview.db"; privatestaticfinalStringCOOKIES_NAME_COL="name"; privatestaticfinalStringCOOKIES_VALUE_COL="value"; privatestaticfinalStringCOOKIES_DOMAIN_COL="domain"; privatestaticfinalStringCOOKIES_PATH_COL="path"; privatestaticfinalStringCOOKIES_EXPIRES_COL="expires"; privatestaticfinalStringCOOKIES_SECURE_COL="secure"; mDatabase=LoginApiActivity.this.openOrCreateDatabase(DATABASE_FILE,0,null); //创建cookie数据库 if(mDatabase!=null){ //cookies mDatabase.execSQL("CREATETABLEIFNOTEXISTScookies" +"(_idINTEGERPRIMARYKEY," +COOKIES_NAME_COL+"TEXT,"+COOKIES_VALUE_COL +"TEXT,"+COOKIES_DOMAIN_COL+"TEXT," +COOKIES_PATH_COL+"TEXT,"+COOKIES_EXPIRES_COL +"INTEGER,"+COOKIES_SECURE_COL+"INTEGER"+");"); mDatabase.execSQL("CREATEINDEXIFNOTEXISTScookiesIndexON" +"cookies"+"(path)"); } } /*写cookie*/ publicvoidaddCookie(Cookiecookie){ if(cookie.getDomain()==null||cookie.getPath()==null||cookie.getName()==null ||mDatabase==null){ return; } StringmCookieLock="asd"; synchronized(mCookieLock){ ContentValuescookieVal=newContentValues(); cookieVal.put(COOKIES_DOMAIN_COL,cookie.getDomain()); cookieVal.put(COOKIES_PATH_COL,cookie.getPath()); cookieVal.put(COOKIES_NAME_COL,cookie.getName()); cookieVal.put(COOKIES_VALUE_COL,cookie.getValue()); mDatabase.insert("cookies",null,cookieVal); } }
关于如何在android中对cookie进行读写问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。
推荐阅读
-
我的世界windows版怎么下载手机版
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
怎么使用Android基准配置文件Baseline Profile方案提升启动速度...
-
HTML5如何实现禁止android视频另存为
HTML5如何实现禁止android视频另存为今天小编给大家分享一...
-
学java好还是学php好?