网站首页  词典首页

请输入您要查询的论文:

 

标题 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下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/23 7:45:55