android的客户端和服务端 安卓app客户端+服务端_android客户端与服务器端的搭建

android客户端与服务器端的搭建.ppt

ANDROID客户端与服务器端的通讯 之环境搭建,服务器端的搭建,考虑了很久,综合各种因素决定服务器端用的搭配如下 1 服务器用开源的tomcat,版本tomcat-6.0.20,JDK1.6 2 技术框架用现在比较流行的SSHStruts2,Spring,Hebernate 主要是用Struts2,要用到Struts2里JSON,因为服务器端传送数据给客户端用的是JSON来传输。 3 数据库oracle-需要的包ojdbc6.jar 4 开发工具Myeclipse 7.5以上 5 用JSON传输,至少需要JSON的包有1 commons-lang.jar、2 commons-beanutils.jar 、3 commons-collections.jar、 4 commons-logging.jar、 5 ezmorph.jar 、 6 json-lib-2.2.2-jdk15.jar,其它包不必赘述。 6 需要在struts.xml修改文件如下,服务器端的搭建服务器端的搭建,上述struts.xml文件主要修改两处 1 extends的值改为json-default,默认为 struts-default 即 2 需要设置返回类型为JSON 即 修改这两处即可,服务器端的搭建,Action 需要现实两个接口,一个是ServletRequestAware,另一个是ServletResponseAware,并且实现它们的两个方法,如下setServletRequest和setServletResponse 关键代码 public class LoginAction extends ActionSupport implements ServletRequestAware,ServletResponseAware HttpServletRequest request; HttpServletResponse response; public void setServletRequestHttpServletRequest arg0 this.request arg0; public void setServletResponseHttpServletResponse arg0 this.response arg0; ,ANDROID客户端环境搭建,1 开发工具Eclipse 3.3 或3.4 ,JDK 6.0 2安装 Eclipse 插件 ADT 3 安装SDK 4 安装ANT用于发布apk应用程序(可选) 5 环境变量配置如下 Android_SDK_HOME解压后的sdk目录 Eg. Android_SDK_HOMEDandroid-softworeandroid-sdk-windows ANT_HOME解压后的ant目录 Eg.ANT_HOME Dandroid-softworeapache-ant-1.7.1;,ANDROID客户端环境搭建,1 classpath的配置 Classpath.;Dandroid-softworeapache-ant-1.7.1bin;Dandroid-softworeapache-ant-1.7.1libant.jar;Fworkjdklibdt.jar;Fworkjdklibtools.jar; 我的jdk解压在Fworkjdk JAVA_HOME Fworkjdk Path Fworkjdkbin;Dandroid-softworeapache-ant-1.7.1bin;Dandroid-softworeandroid-sdk-windowstools;,Android向服务器端发送请求,1 向服务器端发送请求需要用到这几个类HttpClient,HttpPost, HttpResponse, HttpClient httpClient new DefaultHttpClient; HttpPost request new HttpPostnew URIurl; url为请求的地址 request.setEntitynew UrlEncodedEntityNamuePair,HTTP.UTF_8; NamuePair发送给服务器的数据 HTTP.UTF_8为编码方式 发送请求,返回一个响应 HttpResponse respnose httpClient.cuterequest; 这个请求就发送到服务器端了。 接下来就是接收数据 得到返回数据,客户端获取数据,1 在获取数据之前要进行判断 response.getStatusLine.getStatusCode如果这个值等于200说明成功,然后可以通过response.getEntity.getContent,返回流进行操作。 Eg. StringBuilder sb new StrngBuilder; if response.getStatusLine.getStatusCode 200 BufferedReader bufferedReader2 new BufferedReader new StreamReaderresponse.getEntity.getContent; String str null; whilestrbufferedReader2.readLine null sb.appendstr; ,向服务器发送信息,1可以用NamuePair这个类,这个类是像Map一样的key,value键值对 然后邦定到前面的请求实体里面去,httpRequest.setEntitynamuePari,HTTP.UTF_8; 服务器端可以用request.getParameterkey获取数据 关键代码如下 Lis t namuePair new ArrayList; httpRequest.setEntitynamuePari,HTTP.UTF_8; public void addNamuePairString key, String value namuePair.addnew BasicNamuePairkey, value; ,返回JSONObject对象数据模型,public JSONObject getJSON throws Exception return new JSONObjectsb; Sb为返回的信息,存放在StringBuilder里 如果sb里面存放的是JSONArray数组的字符串,可以把它转换为JSONArray再操作 转换语句为 JSONArray array new JSONArraysb; 现在就可以对它们为所欲为的操作了。,