标题 | Android客户端与Web服务通信方式探讨 |
范文 | 王明松 罗清隆 马昊 摘要:Android智能手机作为当今流行的移动互联网客户端,已广泛应用于各种生产生活领域内,对信息数据的快速传播与知识交流起了极大的促进作用。移动互联网的广泛普及与应用,带来了手机客户端与应用服务之间连接与传输数据的问题。该文提出了两种数据交换方式,提高了数据传输与应用效率。服务器采用Servlet接口处理,可以快速高效的进行数据处理。XML数据格式具备规范性和高识别效应,可以在小容量多种类的数据传输中使用。JSON数据格式由于具有文本特性,能够更好处理大容量数据传输。 关键词:Android通信;Android应用开发;Servlet通信 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)04-0054-02 1 手机客户端与应用服务器的请求响应过程 近年来,随着移动互联网在社会经济中的广泛应用,智能手机作为实用方便的客户端移动设备,已成为移动网络应用最重要的网络连接设备。Android作为智能手机的操作系统,被众多手机生产商所接受,同时基于它的应用软件几乎包涵了社会生活的各个领域,已成为当今影响力最强的操作系统之一。 在与Android客户端进行交互数据的应用服务器处理上,Java Servlet是运行在Web服务器或应用服务器上的程序,作为来自客户端请求和应用程序之间的连接层。使用 Servlet,可以收集来自网页表单和其他客户端的用户数据,呈现来自数据库或者其他源的记录,并可以向客戶端返回执行后的数据。 在与Android客户端进行交互数据的应用服务器处理上,Java Servlet是运行在Web服务器或应用服务器上的程序,作为来自Web浏览器或其他HTTP客户端请求和HTTP服务器上的数据库或应用程序之间的中间层。使用 Servlet,可以收集来自网页表单和其他客户端的用户数据,呈现来自数据库或者其他源的记录,并可以向客户端返回执行后的数据。Java Servlet具有以下优势: (1)Servlet在Web服务器的地址空间内执行。不必再创建一个单独的进程来处理每个客户端请求,提高了应用服务的效率和执行速度。 (2)Servlet独立于平台操作,可以实现跨平台使用。 (3)Servlet是安全可信任的。服务器上的Java安全管理器执行了一系列限制,以保护服务器计算机上的资源。 (4)Java类库的全部功能对 Servlet 来说都是可用的。可以通过sockets和RMI机制与applets、数据库或其他软件进行交互。 Servlet执行过程一般包括: (1)读取客户端(浏览器或手机)发送的显式的数据。 (2)读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等。 (3)处理数据并生成结果。这个过程可能需要访问数据库,执行RMI或CORBA调用,调用Web服务,或者直接计算得出对应的响应。 (4)发送显式的数据(即文档)到客户端(浏览器或手机)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。 (5)发送隐式的HTTP响应到客户端(浏览器或手机)。这包括指出浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。 2 应用服务器响应XML格式数据的处理过程 手机客户端连接Web服务器,向Servlet服务发出请求数据,然后接收服务响应后的XML格式数据,并进行数据解析。主要代码如下: (1)手机客户端向服务器发出数据,并接收返回的XML数据,进行处理。 //客户端向服务器发送请求 String urlString = 服务器地址+应用程序名 + "ClassInfoServlet?action=操作类型"; URL url = new URL(urlString); //接收服务器处理后的XML数据 ...... XMLReaderxr = 转换对象.getXMLReader(); XML文件处理类XML处理对象 = new XML文件处理类(); xr.setContentHandler(XML文件处理对象); //获取数据并转换成XML文件 ...... xr.parse(is); Return classInfoListHander.获取数据方法(); 其中XML文件处理类。其内容如下: public class XML文件处理类 extends DefaultHandler { //处理XML文件数据值 public void characters(char[] ch, int start, int length) throws SAXException { //处理过程 } //处理XML结束标签 public void endElement(String uri, String localName, String qName) throws SAXException { //处理过程 } //处理XML开始文档 public void startDocument() throws SAXException { classInfoList = new ArrayList } //处理XML结束标签 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException { //处理过程 } } (2)Servlet服务接收客户端的请求,并进行数据处理。 void doPost( ) throws ServletException, IOException{ /*获取action参数,根据action的值执行不同的业务处理*/ String action = request.getParameter("action"); if(action.equals(请求类型)) { /* 获取请求参数,并执行具体的业务处理操作 */ ...... //向客户端返回XML数据 StringBuffer sb = new StringBuffer(); //建立返回数据的XML文档 sb.append(开始标签).append("\r\n") .append(子项开始标签) .append(子项数据) .append(子项结束标签).append("\r\n") .append(子项开始标签) .append(子项数据) .append(子项结束标签).append("\r\n") ...... sb.append(结束标签).append("\r\n"); PrintWriter out = response.getWriter(); out.print(sb.toString()); } 服务器的Servlet向Android客户端返回XML格式数据 3 应用服务器响应JSON格式数据的处理过程 手机客户端连接Web服务器,向Servlet服务发出请求数据,然后接收服务响应后的JSON格式数据,并进行数据解析,主要代码如下: (1)手机客户端向服务器发生请求数据,并接收返回的JSON格式数据,进行处理: String urlString = 服务器地址+应用程序名 + "ClassInfoServlet?action=操作类型"; urlString += "&参数属性=" + URLEncoder.encode(参数值, "UTF-8") + ""; urlString += "&參数属性=" + URLEncoder.encode(参数值, "UTF-8") + ""; //连接服务器并且发送请求数据 URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5 * 1000); conn.setDoOutput(true); conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); OutputStreamoutStream = conn.getOutputStream(); outStream.write(entitydata); outStream.flush(); outStream.close(); //接收服务器的请求响应,并解析服务器传回的JSON数据 if (conn.getResponseCode() == 200) { byte[] resultByte= readStream(conn.getInputStream()); String result = new String(resultByte, "UTF-8"); JSONArray array = new JSONArray(result); int length = array.length(); for (int i = 0; i< length; i++) { JSONObject object = array.getJSONObject(i); //处理数据 } } 4 结语 Android智能手机作为当今流行的移动互联网客户端,已广泛应用于各种生产生活领域内,对信息数据的快速传播与知识交流起了极大的促进作用。但是作为一种嵌入式设备,智能手机的处理速度和使用容量有限,当处理数据量大时,必将数据上传到企业服务器处理。因此在客户端与服务器之间的数据交互尤为重要,成为提高整体系统使用率的重要环节。本文提出了XML数据和JSON数据两种交换格式,适合不同的应用领域,使用数据在网络的传输更为便捷流畅。 参考文献: [1] MEIERR.Android4高级编程[M].北京:清华大学出版社,2013. [2] 陈法海,杨斌.Android系统中Wi-Fi网络的研究与实现[J].成都信息工程学院学报,2010,25(5). [3] 陈益强.简析Android系统的安全性能[J].信息系统工程,2011(9). [4] 李宁.Android开发权威指南[M].北京:人民邮电出版社,2013:10-11. [5] 曾建平.Android系统架构及应用程序开发研究[J].微计算机信息,2011,27(9). 【通联编辑:代影】 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。