Android应用程序访问WEB服务器的时候,我们为了与服务器保持同一会话,也就是说当前登录用户与服务器的交互是在同一个SessionId下。
当我们登录成功的时候,可以通过HTTP请求获取到Cookie信息,其中包括会话的SessionId,同时也可以自己将SessionId放入Json中返回。Session我们可以用一个静态变量来存放,每次向服务器发送请求的时候将SessionId带过去,服务器会自动检验这个SessionId有没有失效。
同样下面是针对大众点评的城市切换的时候,android为了获得这个城市的信息,必须获得它的cookie数据,同时进行保存。
下面是具体的代码
/**
* 向网站发送get请求,url需按照api要求写,返回取得的信息。
* //这个专门给大众点评传入cookie参数用,目的是为了获得用户选择的城市信息
* @param url
* @param client
* @return String
* @author lvqiyong
*/
public static String getRequest1(String url, DefaultHttpClient client,
String charset) throws Exception {
String result = null;
int statusCode = 0;
HttpGet getMethod = new HttpGet(url);
Log.d(TAG, "do the getRequest,url=" + url + "");
try {
getMethod.setHeader("User-Agent", USER_AGENT);
getMethod.setHeader("Cookie", "cy=" + value);//这个专门给大众点评传入cookie参数用,目的是为了获得用户选择的城市信息
// 添加用户密码验证信息
// client.getCredentialsProvider().setCredentials(
// new AuthScope(null, -1),
// new UsernamePasswordCredentials(mUsername, mPassword));
HttpResponse httpResponse = client.execute(getMethod);
// statusCode == 200 正常
statusCode = httpResponse.getStatusLine().getStatusCode();
Log.d(TAG, "statuscode = " + statusCode);
// 处理返回的httpResponse信息
if (statusCode == 200) {
result = retrieveInputStream(httpResponse.getEntity(), charset);
Cookie cookie;
String cookname,cookvalue;
List<Cookie> cookies = client.getCookieStore().getCookies();
if (cookies.isEmpty()) {
Log.i(TAG, "-------Cookie NONE---------");
} else {
for (int i = 0; i < cookies.size(); i++) {
// 保存cookie
cookie = cookies.get(i);
cookname = cookie.getName().trim();
cookvalue = cookie.getValue().trim();
if(cookname.equals("cy")){
name = cookname;
value = cookvalue;
}
}
}
} else
result = "networkerror";
} catch (ConnectTimeoutException e) {// 超时或网络连接出错
result = "timeouterror";
// e.printStackTrace();
} catch (ClientProtocolException e) {
result = "networkerror";
// e.printStackTrace();
} catch (Exception e) {
result = "readerror";
Log.e(TAG, e.getMessage());
throw new Exception(e);
} finally {
getMethod.abort();
}
return result;
}
分享到:
相关推荐
本教程将深入讲解如何使Android客户端与Servlet服务器进行有效交互。 首先,我们从Android客户端开始。在Android应用中,我们通常使用HttpURLConnection或Apache HttpClient库来发送HTTP请求到服务器。然而,由于...
根据提供的文件信息,本文将详细解析“Android与Web服务器交互的原代码”中涉及的关键知识点。主要内容包括:Android客户端如何发起HTTP请求、处理响应数据,以及Web服务器端如何接收请求参数并返回数据。 ### ...
在Android应用开发中,与服务器进行数据交互是常见的需求,特别是在毕业设计或论文项目中,这一环节尤为重要。这个"Android 与php服务器交互实例源码"的压缩包提供了一个具体的示例,帮助开发者理解如何在Android...
在本项目中,"react-react模仿大众点评appreactreduxreactrouter4",开发者采用React技术栈,结合Redux和React Router v4,构建了一个类似于大众点评应用程序的前端项目。这是一个很好的学习资源,展示了如何将这些...
Android客户端与服务器数据交互是移动应用开发中的关键环节,它涉及到网络通信、数据传输、请求响应等多个方面。在这个过程中,客户端通常通过HTTP协议与服务器进行通信,HTTP协议基于TCP/IP协议,确保数据的可靠...
在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本主题将深入探讨Android客户端如何使用JSON进行数据交互,包括...
### Android移动终端与服务器交互详解 #### 一、引言 随着移动互联网的快速发展,智能手机已成为人们生活中不可或缺的一部分。为了更好地满足用户需求,移动应用程序必须能够高效地与服务器进行交互,以便提供最新...
在Android开发中,客户端与服务器端的数据交互是应用程序的核心功能之一。这个Demo涵盖了从客户端到服务器端的基本数据发送和接收,以及验证过程。下面将详细解释这个Demo涉及到的知识点。 1. **Android网络请求库*...
综上所述,这个DEMO涵盖了Android应用与Web服务器交互的基本流程和技术点,包括网络请求、数据格式、权限管理、异步处理以及错误处理等,是学习和实践Android网络编程的好例子。通过深入研究和理解这个DEMO,开发者...
4. **api**:可能包含与后端服务器交互的接口文件,用于获取或提交数据,如用户登录、商家信息、评论列表等。 5. **routes**:定义应用的路由配置,使用React Router库来管理页面间的跳转。在"react-dianping"中,...
在Android开发中,实现一个通过客户端访问Web服务器的登录功能是一项基本任务,它涉及网络通信、数据解析以及用户界面的设计。下面将详细讲解这个过程的关键知识点。 首先,我们需要理解Android客户端与Web服务器...
在开发移动应用时,尤其是Android应用,与服务器进行交互是必不可少的部分。本项目涉及的核心知识点是构建一个完整的登录系统,包括Android客户端、Web服务器以及MySQL数据库。以下将详细阐述每个环节的关键技术和...
在Android客户端与服务器的数据交互中,通常涉及到网络通信方式、数据传输格式以及API设计规范等多个方面。以下将详细阐述这些知识点。 首先,Android客户端与服务器的通信方式主要包括HTTP和Socket。HTTP通信是...
在Android应用开发中,与服务器进行数据交互是一个关键环节,而JSON作为一种轻量级的数据交换格式,被广泛用于客户端和服务器之间的通信。本篇将详细阐述Android App如何使用JSON与服务器进行交互,以及相关的实现...
在安卓(Android)开发中,与服务器进行交互是常见的需求,尤其当涉及到数据的获取、存储或更新时。本实例源码着重展示了如何在Android应用中通过PHP服务器进行数据通信。下面将详细解释这一过程涉及的关键知识点。 ...
在Android客户端实现与服务器交互的用户登录功能是一个基础但至关重要的任务,这涉及到客户端与服务端的通信协议、数据格式的处理以及用户认证的安全性。在这个过程中,Android应用需要发送登录请求到JavaWebServlet...
在现代的跨平台开发中,Android作为主流的移动操作系统,经常需要与服务器端进行数据交换。在这种场景下,Asp.Net作为一个强大的Web应用程序框架,常被用于构建后端服务。本篇文章将深入探讨如何使Android客户端通过...
Android与后台服务器端交互demo,适合新手入门级的,后台处理很简单,Android端通过发给服务器一个名字,然后后台提取到Android端发来的名字后加入一句话,欢迎你XXX然后显示在Android客户端。任何大牛都是从入门...