android 给url添加cookie

前些天因为项目需要写了一个通过网络连接去服务端拿数据的方法,但是需要让程序添加上cookie,因为之前对cookie 没有怎么研究过(包括做web 那会也没有用过或者说很少用),所以 

一时用起来不太会用。。结果百度google 了一把 发现要用cookieManager这个类,然后对这个类进行操作就行了!

Java代码   收藏代码
  1. String getCookie(Context context){  
  2. CookieManager cookieManager = CookieManager.getInstance();  
  3. String        cookie = cookieManager.getCookie("cookie");  
  4. if(cookie != null){  
  5.     return cookie;  
  6. }else{  
  7. cookie= “XXX”;  
  8. cookieManager.setCookie("cookie", cookie);  
  9. return cookie;  
  10. }  
  11. }  


可以看到 我们只要设置在这里面然后再使用的时候我们在自己的httpconnection中添加就行了 

Java代码   收藏代码
  1. URL  url = new URL(urlPath);  
  2. HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();  
  3. httpUrlConn.setRequestProperty("cookie", getCookie(context));  


这样做 貌似是正确的。。当时我也是这么理解的。。但是很不幸的 是 。。。报错了。。 

提示createInstance() must be instance called before getinstance() 

很明显 我们必须要首先产生这个实例。。。结果查了一下API 需要在 getInstance()之前先 
Java代码   收藏代码
  1. CookieSyncManager.createInstance(context);  


这样之后就不会出错了。。createInstance 之后保证了我们的。。webkit在使用CookieManager的时候 使用的是同一个CookieManager并保证了 线程同步。。。。 

这一点我们可以参看CookieSyncManager.createInstance(context);的源码。。。。。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值