Android请求WebService保存用户登录Session
来源:互联网 发布:php成绩管理系统源码 编辑:程序博客网 时间:2024/05/15 04:48
在请求WebService过程中有时需要保存用户的登录信息,在web中都会自动产生一个对应的session,但android中需要自己获取session并保存,再次请求的时候带上保存的session,否则有时会获取不到已登录时的数据,此处网络请求我采用的是HttpGet,下面是登录时保存session的方法
private static final int REQUEST_TIMEOUT = 30*1000;//设置请求超时10秒钟 private static final int WAIT_TIMEOUT = 30*1000; //设置等待数据超时时间10秒钟 public static String getLogin(String name, String pwd){String url = SERVICE_URL+ "Login" + "&UserName=" + name + "&UserPwd=" + pwd;try {HttpGet httpGet = new HttpGet(url);DefaultHttpClient httpClient=getThreadSafeClient();HttpResponse response = httpClient.execute(httpGet);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity entity = response.getEntity();result = EntityUtils.toString(entity, HTTP.UTF_8);}//获得CookieList<Cookie> cookies = httpClient.getCookieStore().getCookies(); if (!cookies.isEmpty()) { for (int i = 0; i < cookies.size(); i++) { Cookie cookie = cookies.get(i); cookieString = cookie.getName() + "=" + cookie.getValue() + ";domain=" + cookie.getDomain(); } } } catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result;}/*** ThreadSafeClient* or Invalid use of SingleClientConnManager: * connection still allocated* @return*/public static DefaultHttpClient getThreadSafeClient() {DefaultHttpClient client = new DefaultHttpClient();ClientConnectionManager manager = client.getConnectionManager();HttpParams params = client.getParams();HttpConnectionParams.setConnectionTimeout(params, REQUEST_TIMEOUT); HttpConnectionParams.setSoTimeout(params, SO_TIMEOUT);client = new DefaultHttpClient(new ThreadSafeClientConnManager(params, manager.getSchemeRegistry()), params); return client;}此处注意下次传递的是cookieString,注意格式,下面是再次请求是带上Cookie的方法,只需要传递请求的url就可以了
private static String doHttpGet(String url){String get_result = "";try {HttpGet httpGet = new HttpGet(url);//设置CookiehttpGet.setHeader("Cookie", cookieString);HttpResponse response = httpClient.execute(httpGet);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity entity = response.getEntity();get_result = EntityUtils.toString(entity, HTTP.UTF_8);}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return get_result;}
- Android请求WebService保存用户登录Session
- cookie session 保存用户登录信息
- 【JavaWeb】利用Session保存用户登录信息
- android 保存用户登录账号
- 关于 把 session 保存 sql server 中 、 无法打开登录所请求的数据库 "ASPState"。登录失败。 用户 'sa' 登录失败。
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- Android 网页登录 POST 请求 保存 COOKIE
- Android 网页登录 POST 请求 保存 COOKIE
- Android 网页登录 POST 请求 保存 COOKIE
- android loginDemo +WebService用户登录验证
- android loginDemo +WebService用户登录验证 续篇
- Android 访问WebService登录通过Cookie保存登录状态
- ASP.NET 关于session和cookies保存用户登录信息
- php使用session来保存用户登录信息
- php使用session来保存用户登录信息
- 获取客户端IP并判断内外网
- .NET框架
- python中字典操作
- 通用组件"浏览服务器文件"的使用
- Python Exception
- Android请求WebService保存用户登录Session
- 服务器内存一直“高烧不退”,任务管理器却看不到占用内存很大的进程
- Java 连接mySql 中文乱码
- 提高编译速度
- Python输入输出
- clrprofiler
- EFM32片内外设--ADC之多通道采样+Timer+PRS触发+DMA
- FXO端口的断开呼叫的问题(转)
- visual studio中使用环境变量