
android xutils怎么用session
1个回答
2015-12-09 · 知道合伙人数码行家

知道合伙人数码行家
采纳数:117533
获赞数:517216
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注

展开全部
之前使用过XUtils框架做过项目,当时因为session纠结了好久,但是解决了,现在回想起来,好像没有备份,赶紧写份笔记备份下,以后方便使用。
主要是登陆服务器后,应该保存一个登陆状态,登陆后,会保存个登陆状态,只有保存这个状才能有权限访问对应的内容,否则,返回的是一堆html格式的网页。
这时候,就会考虑到保存Cookie。直接上代码吧:
这里是登陆界面:
java">
MainActivity.java对应的import
import org.apache.http.client.CookieStore;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
MainActivity.java
1 private void httpLogin() {
2 final HttpUtils http = new HttpUtils();
3 RequestParams params = new RequestParams();
4 String url = "http://192.168.1.60/auto/login_Login.action?oper.operatorName=123&oper.password=123";
5 final String urlPost="http://192.168.1.60/auto/login_Login.action";
6 params.addBodyParameter("oper.operatorName","123");
7 params.addBodyParameter("oper.password","123");
8 http.send(HttpRequest.HttpMethod.POST,
9 urlPost,
10 params,
11 new RequestCallBack<String>() {
12
13 @Override
14 public void onStart() {
15 pg.show();
16 Log.d("jack",urlPost);
17 }
18
19 @Override
20 public void onLoading(long total, long current, boolean isUploading) {
21 pg.show();
22 }
23
24 @Override
25 public void onSuccess(ResponseInfo<String> responseInfo) {
26 pg.dismiss();
27 Log.d("jack",responseInfo.result);
28 //===========================
29 // 取得sessionid.........................
30
31 DefaultHttpClient dh = (DefaultHttpClient) http.getHttpClient();
32 MyCookieStore.cookieStore = dh.getCookieStore();
33 CookieStore cs = dh.getCookieStore();
34 List<Cookie> cookies = cs.getCookies();
35 String aa = null;
36 for (int i = 0; i < cookies.size(); i++) {
37 if ("JSESSIONID".equals(cookies.get(i).getName())) {
38 aa = cookies.get(i).getValue();
39 break;
40 }
41 }
42 Log.d("jack", "比较sessionid" + aa);
43 //===========================
44 Intent intent = new Intent(MainActivity.this,SecondActivity.class);
45 startActivity(intent);
46 }
47
48 @Override
49 public void onFailure(HttpException error, String msg) {
50 pg.dismiss();
51 Log.d("jack","哈哈"+msg);
52 }
53 });
54 }
关键代码:
1 //===========================
2 // 取得sessionid.........................
3 DefaultHttpClient dh = (DefaultHttpClient) http.getHttpClient();
4 MyCookieStore.cookieStore = dh.getCookieStore();
5 CookieStore cs = dh.getCookieStore();
6 List<Cookie> cookies = cs.getCookies();
7 String aa = null;
8 for (int i = 0; i < cookies.size(); i++) {
9 if ("JSESSIONID".equals(cookies.get(i).getName())) {
10 aa = cookies.get(i).getValue();
11 break;
12 }
13 }
14 Log.d("jack", "比较sessionid" + aa);
15 //===========================
这里面的MyCookieStore是自定义的一个保存类:
MyCookieStore.java
1 import org.apache.http.client.CookieStore;
2
3 public class MyCookieStore {
4
5 public static CookieStore cookieStore=null;
6
7 }
最后就是在登陆后访问服务器的时候添加一句话:
http.configCookieStore(MyCookieStore.cookieStore);
给个类里的代码看看吧:
SecondActivity.java
1 private void httpLogin() {
2 HttpUtils http = new HttpUtils();
3 final String urlGet="http://192.168.1.60/auto/carModel_queryPL.action";
4 http.configCookieStore(MyCookieStore.cookieStore);
5 http.send(HttpRequest.HttpMethod.POST,
6 urlGet,
7 new RequestCallBack<String>() {
8
9 @Override
10 public void onStart() {
11 pg.show();
12 Log.d("jack",urlGet);
13 }
14
15 @Override
16 public void onLoading(long total, long current, boolean isUploading) {
17 pg.show();
18 }
19
20 @Override
21 public void onSuccess(ResponseInfo<String> responseInfo) {
22 pg.dismiss();
23 Log.d("jack","排量"+responseInfo.result);
24 }
25
26 @Override
27 public void onFailure(HttpException error, String msg) {
28 pg.dismiss();
29 Log.d("jack","排量"+msg);
30 }
31 });
32 }
主要是登陆服务器后,应该保存一个登陆状态,登陆后,会保存个登陆状态,只有保存这个状才能有权限访问对应的内容,否则,返回的是一堆html格式的网页。
这时候,就会考虑到保存Cookie。直接上代码吧:
这里是登陆界面:
java">
MainActivity.java对应的import
import org.apache.http.client.CookieStore;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
MainActivity.java
1 private void httpLogin() {
2 final HttpUtils http = new HttpUtils();
3 RequestParams params = new RequestParams();
4 String url = "http://192.168.1.60/auto/login_Login.action?oper.operatorName=123&oper.password=123";
5 final String urlPost="http://192.168.1.60/auto/login_Login.action";
6 params.addBodyParameter("oper.operatorName","123");
7 params.addBodyParameter("oper.password","123");
8 http.send(HttpRequest.HttpMethod.POST,
9 urlPost,
10 params,
11 new RequestCallBack<String>() {
12
13 @Override
14 public void onStart() {
15 pg.show();
16 Log.d("jack",urlPost);
17 }
18
19 @Override
20 public void onLoading(long total, long current, boolean isUploading) {
21 pg.show();
22 }
23
24 @Override
25 public void onSuccess(ResponseInfo<String> responseInfo) {
26 pg.dismiss();
27 Log.d("jack",responseInfo.result);
28 //===========================
29 // 取得sessionid.........................
30
31 DefaultHttpClient dh = (DefaultHttpClient) http.getHttpClient();
32 MyCookieStore.cookieStore = dh.getCookieStore();
33 CookieStore cs = dh.getCookieStore();
34 List<Cookie> cookies = cs.getCookies();
35 String aa = null;
36 for (int i = 0; i < cookies.size(); i++) {
37 if ("JSESSIONID".equals(cookies.get(i).getName())) {
38 aa = cookies.get(i).getValue();
39 break;
40 }
41 }
42 Log.d("jack", "比较sessionid" + aa);
43 //===========================
44 Intent intent = new Intent(MainActivity.this,SecondActivity.class);
45 startActivity(intent);
46 }
47
48 @Override
49 public void onFailure(HttpException error, String msg) {
50 pg.dismiss();
51 Log.d("jack","哈哈"+msg);
52 }
53 });
54 }
关键代码:
1 //===========================
2 // 取得sessionid.........................
3 DefaultHttpClient dh = (DefaultHttpClient) http.getHttpClient();
4 MyCookieStore.cookieStore = dh.getCookieStore();
5 CookieStore cs = dh.getCookieStore();
6 List<Cookie> cookies = cs.getCookies();
7 String aa = null;
8 for (int i = 0; i < cookies.size(); i++) {
9 if ("JSESSIONID".equals(cookies.get(i).getName())) {
10 aa = cookies.get(i).getValue();
11 break;
12 }
13 }
14 Log.d("jack", "比较sessionid" + aa);
15 //===========================
这里面的MyCookieStore是自定义的一个保存类:
MyCookieStore.java
1 import org.apache.http.client.CookieStore;
2
3 public class MyCookieStore {
4
5 public static CookieStore cookieStore=null;
6
7 }
最后就是在登陆后访问服务器的时候添加一句话:
http.configCookieStore(MyCookieStore.cookieStore);
给个类里的代码看看吧:
SecondActivity.java
1 private void httpLogin() {
2 HttpUtils http = new HttpUtils();
3 final String urlGet="http://192.168.1.60/auto/carModel_queryPL.action";
4 http.configCookieStore(MyCookieStore.cookieStore);
5 http.send(HttpRequest.HttpMethod.POST,
6 urlGet,
7 new RequestCallBack<String>() {
8
9 @Override
10 public void onStart() {
11 pg.show();
12 Log.d("jack",urlGet);
13 }
14
15 @Override
16 public void onLoading(long total, long current, boolean isUploading) {
17 pg.show();
18 }
19
20 @Override
21 public void onSuccess(ResponseInfo<String> responseInfo) {
22 pg.dismiss();
23 Log.d("jack","排量"+responseInfo.result);
24 }
25
26 @Override
27 public void onFailure(HttpException error, String msg) {
28 pg.dismiss();
29 Log.d("jack","排量"+msg);
30 }
31 });
32 }

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询