[Android实例] android登录Web以及登录保持,cookie管理相关
16lz
2021-01-26
对于登录功能本身没有任何特别,使用httpclient向服务器post用户名密码即可。
但是为了保持登录的状态(在各个Activity之间切换时要让网站知道用户一直是处于登录的状态)就需要进行cookie的读写。
httpclient相当强大,读写cookie非常容易:
构的作法是使用拥有这些activity的application类:
首先声明一个application类用来存取cookie:
这样就可以在Activity中使用这个“全局变量”了:
ps.
从一个httpclient取得statuscode的方法:
看了一下图书馆的代码,发现是POST用户名和密码,
而在代码实现主要有两个难点:一、保存账号密码 二、保存Cookie
那么 ,第一个可以使用之前提到过的Sharedpreference ,每次就直接从sharedpreference里获取账号名和密码就可以了,不需要每次都输入
第二个怎么获得服务器的cookie呢,知道这次的session id
通过Httpclient 中的getcookiestore
但是为了保持登录的状态(在各个Activity之间切换时要让网站知道用户一直是处于登录的状态)就需要进行cookie的读写。
httpclient相当强大,读写cookie非常容易:
-
- CookieStore cookies=((AbstractHttpClient)client).getCookieStore();//读cookie
- ((AbstractHttpClient) client).setCookieStore(cookies);//写cookie
构的作法是使用拥有这些activity的application类:
首先声明一个application类用来存取cookie:
-
- public class myApp extends Application {
- private CookieStore cookies;
- public CookieStore getCookie(){
- return cookies;
- }
- public void setCookie(CookieStore cks){
- cookies = cks;
- }
- }
这样就可以在Activity中使用这个“全局变量”了:
-
- //设置cookie
- myApp appCookie = ((myApp)getApplication());
- appCookie.setCookie(cookies);
- //读取cookie
- myApp appCookie = ((myApp)getApplicationContext());
- cookies = appCookie.getCookie();
ps.
从一个httpclient取得statuscode的方法:
-
- HttpResponse response = client.execute(mypost);
- int statuscode = response.getStatusLine().getStatusCode();
看了一下图书馆的代码,发现是POST用户名和密码,
而在代码实现主要有两个难点:一、保存账号密码 二、保存Cookie
那么 ,第一个可以使用之前提到过的Sharedpreference ,每次就直接从sharedpreference里获取账号名和密码就可以了,不需要每次都输入
第二个怎么获得服务器的cookie呢,知道这次的session id
通过Httpclient 中的getcookiestore
-
- List<Cookie> cookies = httpclient.getCookieStore().getCookies();
- if (cookies.isEmpty()) {
- Log.i(TAG, "-------Cookie NONE---------");
- } else {
- for (int i = 0; i < cookies.size(); i ) {
- //保存cookie
- cookie = cookies.get(i);
- Log.d(TAG, cookies.get(i).getName() "=" cookies.get(i).getValue() );
- }
-
- HttpPost httpPost = new HttpPost(访问地址);
- httpPost.setHeader("Cookie", "JSESSIONID=" + 我们在静态变量里存放的SessionId);
- HttpResponse httpResponse = httpclient.execute(httpPost);
- HttpGet request = new HttpGet(url+"?"+Params);
- request.setHeader("Cookie",Sessionid);
更多相关文章
- Android(安卓)Audio代码分析=Audio Strategy
- android中setOnClickListener的那点事
- android小特效(持续更新...)
- 【Android】 使用okhttp实现注册登录功能(与服务器端)
- Android第二个签名漏洞#9695860(The Second Master Key)的手动构
- 新应用的知识整理-1-启动页
- android 开发解密时出现pad block corrupted 错误
- [Android(安卓)UI界面] ListView与arrays.xml结合使用的问题
- 实现在Android简单封装类似JQuery异步请求