`
小白杨的记忆
  • 浏览: 16175 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

android手机端与web服务器之间的Json数据交互

 
阅读更多

 手机客户端与服务器端的Json 格式数据交互

 

以手机端的登陆界面为例

客户端与服务器数据交互,主要分为三步,如下图所示(类似于TCP/IP的三次握手)

android手机端

首先手机客户端声明一个异步的AsyncHttpClient对象,通过c.post()或c.get()的方式连接到服务器,

我用的是c.post()的方式,这个方法有几个重载的函数

c.post(url, responseHandler);

c.post(url, params, responseHandler);

url:请求的服务器端的servlet路径,params:要传到服务器短的参数;

responseHandler:处理器,处理服务器返回来的信息(Json 格式的数据用JsonHttpResponseHadler,xml格式的数据用TextHttpResponseHandler,图片用BinaryHttpResponseHandler),这里面要实现它的onSuccess()方法,返回来的数据在onSuccess()方法中获得,在根据实际情况进行相应的操作

 

当输入用户名和密码,点击登录按钮时执行Login()方法,获得输入的用户名和密码传给LoginServlet

 

当服务端返回数据之后(若返回的是则实现onSuccess(JsonObject response)方法,若是数组的话则实现onSuccess(JsonArray respoonse)方法),然后跳转到主界面,执行相应的操作

//手机界面登录时的操作
	private void login(){
		AsyncHttpClient c=new AsyncHttpClient();
		RequestParams params=new RequestParams();
		params.put("username",edit_username.getText().toString() );  
		params.put("password", edit_password.getText().toString());
		params.put("client","android");
		Log.d("MainActivity.this", "连接 开始。。。。。。。");  
		c.post("http://"+ConfigIp.ip+":8080/com.traveling.demo/LoginServlet", params, new JsonHttpResponseHandler(){
			public void onSuccess(JSONObject response) {
				super.onSuccess(response);			
				try {
					if("登陆成功".equalsIgnoreCase(response.getString("msg"))){
						Intent intent=new Intent();
						intent.setClass(MainActivity.this,GridActivity.class);
						intent.putExtra("id", response.getString("id"));
						MainActivity.this.startActivity(intent);
						Toast.makeText(MainActivity.this, ""+response.getString("msg").toString(), Toast.LENGTH_LONG).show();
						Log.d("MainActivity",""+response.toString());
					}else if("登陆失败".equalsIgnoreCase(response.getString("msg"))){
						Toast.makeText(MainActivity.this,"用户名或密码错误", Toast.LENGTH_LONG).show();
					}
				} catch (JSONException e) {
					e.printStackTrace();
				}
			}
		});
	}

 

web服务器端

服务器端接到请求取出用户名和密码,将用户名和密码封装到User对象中,将user对象作为参数传到UserUtil类中,然后再调用UserUtil中的loginCheck()方法执行数据库中的查询操作判断用户和密码是否正确的方法(该方法返回一个标志),再将id和要返回的信息封装到map对象中,最后将map以json格式返回(这里如果要返回的是对象的话用JsonObject,数组用JsonArray)

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
        HashMap<String,Object> map=new HashMap<String,Object>();
		req.setCharacterEncoding("UTF-8");
		resp.setCharacterEncoding("UTF-8");
		String username=req.getParameter("username");
		String password=req.getParameter("password");
		String client=req.getParameter("client");
		//验证用户输入的用户名是否正确
		User user=new User();
		user.setUsername(username);
		user.setPassword(password);
		UserUtil uu=new UserUtil(user);
		map.put("state", "OK");
		map.put("data", user);
		if("android".equalsIgnoreCase(client))
			if(uu.loginCheck()==true){
				map.put("msg","登陆成功");
				map.put("id", uu.check());
				//先返回一个状态码
				resp.getWriter().print(JSONObject.fromObject(map).toString());
			}else{
				map.put("msg","登陆失败");
				map.put("id", "false");
				resp.getWriter().print(JSONObject.fromObject(map).toString());
		}
	}
}

 

 

 

 

 

 

 

  • 大小: 4.4 KB
分享到:
评论

相关推荐

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

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

    android手机客户端获取服务器端的json数据的demo

    在Android开发中,获取服务器端的数据是常见的需求,特别是JSON格式的数据,因其轻量级、易解析的特性,被广泛应用于移动应用与后端服务之间的数据交换。本demo旨在展示如何在Android手机客户端通过WiFi连接服务器,...

    详解Android客户端与服务器交互方式

    要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式标准、交互方便。 为了与服务器通讯其实无非就两种协议HTTP和TCP,TCP的学习Socket,HTTP的话熟悉一下HTTP协议和相关Java API。而...

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

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

    android手机与asp服务器传输数据源码

    本文将深入探讨如何实现“android手机与asp服务器传输数据源码”这一主题,结合描述和标签,我们将关注ASP服务器端的构建、Android客户端的开发以及JSON数据的传递。 首先,服务器端采用ASP(Active Server Pages)...

    Struts2+Json+Android简单实现

    4. **用户交互**:Android端可能有按钮等UI元素,点击后触发网络请求,获取服务器返回的JSON数据,更新UI。 5. **错误处理**:同时,服务端和客户端都需要处理可能出现的错误,比如网络连接失败、数据解析异常等,...

    Android与servlet服务器交互

    为了使Android客户端能够访问Servlet,我们需要在服务器端配置Web服务器(如Apache Tomcat)和Servlet容器。例如,将Servlet部署在名为"webss"的Web应用下,你需要在`WEB-INF/web.xml`文件中注册Servlet: ```xml ...

    Android连接服务器端

    本文基于《Android手机访问服务器的一种数据交互方法》这一研究,深入探讨了Android终端与Web服务器之间数据交互的有效策略和技术实现细节。 #### 核心知识点解析 ##### 1. Android API分析 - **API简介**:...

    struts2+android+Json

    Struts2和Android是两种不同平台上的开发框架,它们在实际...通过提供的文档如"struts2+json.doc"和"Android客户端与服务器端的json数据交互(内含大量知识点)",你可以深入学习和实践这些技术,提高你的开发能力。

    安卓通过json获取webservlet上的数据

    在Android开发中,与Web服务器进行数据交互是一个常见的任务,其中JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Android与Web服务器之间的数据通信。本主题主要探讨如何在Android...

    android json php mysql

    这个技术组合意味着一个Android客户端应用通过JSON(JavaScript Object Notation)格式与PHP(一种服务器端脚本语言)编写的Web服务接口进行通信,而Web服务接口又连接到MySQL数据库来存储和检索数据。接下来,我们...

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

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

    最简单安卓访问JSON例子,包含手机端和服务器端(测试通过)

    本教程将详细讲解如何在Android应用中实现对JSON数据的访问,包括手机端的解析与发送请求,以及服务器端的响应处理。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号包围,值可以是字符串、数字、...

    android移动端和服务器交互

    本文将详细介绍两种主流的移动开发方式——基于手机API开发和基于手机浏览器开发,并探讨它们与服务器之间的交互机制。 #### 二、移动端开发概述 移动端开发通常分为两大类:一种是基于手机API的原生开发,另一种...

    Android+Json+SSM+MySQL后台数据交互模拟云备份云恢复(源码)

    在Android与服务器间进行数据传输时,Json被广泛用作数据载体,因为它能有效地转换为Java对象,方便前后端数据交互。 3. **SSM框架**:SSM是Java Web开发中的一个经典组合,由Spring、SpringMVC和MyBatis三个框架...

    Android移动终端与服务器数据传输的研究.pdf

    Android作为开放的手机平台,凭借其API支持,使得开发者能够构建访问Web服务器的应用。然而,传统的数据传输方式,如XML(Extensible Markup Language),在性能、兼容性和敏感度方面存在不足。 XML是一种结构化的...

    利用JSON实现智能家居服务器端与客户端的异步通信.pdf

    JSON是一种轻量级的数据交换格式,它可以将JavaScript对象表示的一组数据转换为JSON字符串,便于在函数之间传递数据,尤其是在异步应用程序中,从Web客户端向服务器端传递数据。JSON的数据结构简单,基于纯文本,其...

    netexcel通信协议Android示例(含服务器,手机端

    NetExcel通信协议是一种专用于数据交换的技术,尤其在Android应用中,它可以帮助应用程序与服务器进行高效的数据交互。本文将深入探讨NetExcel通信协议在Android平台上的应用,包括服务器端和客户端(手机端)的实现...

    基于android开发的服务器端和客户端例子Struts2AndJSON

    这个例子“基于android开发的服务器端和客户端例子Struts2AndJSON”是展示如何在Android客户端与使用Struts2框架的服务器端之间进行数据交换的一个教程。下面将详细阐述相关知识点。 1. **Android开发**:Android是...

Global site tag (gtag.js) - Google Analytics