`
nbacheng
  • 浏览: 7164 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
最近访客 更多访客>>
社区版块
存档分类
最新评论

android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)

阅读更多

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;

}
0
0
分享到:
评论

相关推荐

    Android平台手机访问Web服务器的有效数据交互方法

    为了提高Android应用程序与Web服务器之间的数据交互效率,开发者可以采取一系列优化措施,如使用异步任务(AsyncTask)来避免UI线程阻塞,以及利用缓存机制减少不必要的网络请求。此外,安全也是不可忽视的一环,...

    Android与servlet服务器交互

    本教程将深入讲解如何使Android客户端与Servlet服务器进行有效交互。 首先,我们从Android客户端开始。在Android应用中,我们通常使用HttpURLConnection或Apache HttpClient库来发送HTTP请求到服务器。然而,由于...

    Android高级应用源码-Android仿大众点评、美团下拉菜单.zip

    这个压缩包"Android高级应用源码-Android仿大众点评、美团下拉菜单.zip"提供了一个实现这一功能的源代码示例,主要包含一个名为"ExpandTabView"的自定义组件。 首先,我们要理解"ExpandTabView"的核心概念。在...

    android客户端与后台服务器交互

    本示例探讨了如何实现Android客户端与基于Struts、Hibernate和Spring的后台服务器之间的数据交互,使用JSON作为数据传输格式。对于初学者来说,这是一个很好的起点,因为它涵盖了多个关键的技术栈。 首先,让我们...

    Android与PHP服务器交互用户登录与注册

    在移动应用开发中,尤其是Android应用,与服务器的交互是必不可少的部分,这通常涉及到用户登录和注册的功能。本文将深入探讨如何实现Android客户端与PHP服务器之间的用户登录与注册功能。 一、Android端的实现 1....

    Android 与php服务器交互实例源码-IT计算机-毕业设计.zip

    在Android应用开发中,与服务器进行数据交互是常见的需求,特别是在毕业设计或论文项目中,这一环节尤为重要。这个"Android 与php服务器交互实例源码"的压缩包提供了一个具体的示例,帮助开发者理解如何在Android...

    Android客户端与服务器端交互

    在Android应用开发中,客户端与服务器端的交互是不可或缺的一部分,尤其对于涉及到用户数据存储、网络请求、实时更新等功能的应用更是如此。本知识点主要聚焦于Android客户端如何与服务器端进行有效的通信,通过IDEA...

    Android客户端远程登录web服务器数据交换实例

    在Android开发中,实现客户端与Web服务器的数据交换是一项常见的任务,尤其在移动应用需要与远程数据库交互时。本文将深入探讨“Android客户端远程登录Web服务器数据交换实例”,讲解如何使用MySQL数据库、JSON数据...

    Android代码-与php服务器交互实例源码.zip

    在Android开发中,与服务器进行数据交互是常见的需求,这里我们关注的是使用PHP服务器作为后端,通过Android客户端进行通信的实例。这个压缩包“Android代码-与php服务器交互实例源码.zip”提供了完整的实现代码,...

    Android客户端与服务器数据交互流程.pdf

    Android客户端与服务器数据交互是移动应用开发中的关键环节,它涉及到网络通信、数据传输、请求响应等多个方面。在这个过程中,客户端通常通过HTTP协议与服务器进行通信,HTTP协议基于TCP/IP协议,确保数据的可靠...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本主题将深入探讨Android客户端如何使用JSON进行数据交互,包括...

    大众点评api 接口Demo

    2. JavaScript实例:适用于前端开发,展示如何在浏览器环境中通过JavaScript与大众点评API交互。 3. Java实例:适合后端服务开发,演示了如何在Java环境中实现API接口的调用。 4. PHP实例:同样为后端开发提供参考,...

    android移动端和服务器交互

    ### Android移动终端与服务器交互详解 #### 一、引言 随着移动互联网的快速发展,智能手机已成为人们生活中不可或缺的一部分。为了更好地满足用户需求,移动应用程序必须能够高效地与服务器进行交互,以便提供最新...

    Android 客户端与服务器端进行数据交互Demo(包含服务器端和客户端)

    在Android开发中,客户端与服务器端的数据交互是应用程序的核心功能之一。这个Demo涵盖了从客户端到服务器端的基本数据发送和接收,以及验证过程。下面将详细解释这个Demo涉及到的知识点。 1. **Android网络请求库*...

    Android 与php服务器交互实例源码.zip

    在Android应用开发中,与PHP服务器进行交互是常见的需求,比如实现用户登录、数据上传下载等功能。这个压缩包文件“Android与php服务器交互实例源码.zip”提供了一个实际的项目案例,帮助开发者理解并学习如何在...

    Android 仿大众点评网源码-IT计算机-毕业设计.zip

    在本地存储用户数据或者缓存部分网络数据时,Android应用通常会使用SQLite数据库。源码中可能会有创建数据库、表以及进行CRUD操作的示例,这是Android数据持久化的重要手段。 五、Adapter与ListView/RecyclerView ...

    Android客户端与服务器通信+json交互数据

    在与服务器交互时,Android客户端通常会发送JSON格式的请求数据,服务器则返回JSON格式的响应数据。 在`DiaryClient`这个文件名中,我们可以推测这是一个日记应用的客户端部分,可能用于发送用户的日记条目到服务器...

    Web服务器与Ajax异步交互易语言源码

    数据是使用AJAX向易语言程序请求交互取到的。虽然wke浏览器也可以交互数据,但个人感觉还是Ajax顺手。像做Web应用系统一样做易语言程序,是一种什么样的feel?。用html写窗口UI,然后用Ajax交互数据。把web应用搬到...

    Android 通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端-IT计算机-毕业设计.zip

    这篇毕业设计项目主要展示了如何利用Android客户端访问web服务器来实现一个登录功能,涵盖了服务端、数据库以及Android端的完整流程。下面将详细讲解这个过程中的关键知识点。 首先,我们需要了解Android客户端开发...

Global site tag (gtag.js) - Google Analytics