999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android客戶端與Web服務通信方式探討

2019-05-24 14:11:40王明松羅清隆馬昊
電腦知識與技術 2019年4期

王明松 羅清隆 馬昊

摘要:Android智能手機作為當今流行的移動互聯(lián)網(wǎng)客戶端,已廣泛應用于各種生產(chǎn)生活領域內(nèi),對信息數(shù)據(jù)的快速傳播與知識交流起了極大的促進作用。移動互聯(lián)網(wǎng)的廣泛普及與應用,帶來了手機客戶端與應用服務之間連接與傳輸數(shù)據(jù)的問題。該文提出了兩種數(shù)據(jù)交換方式,提高了數(shù)據(jù)傳輸與應用效率。服務器采用Servlet接口處理,可以快速高效的進行數(shù)據(jù)處理。XML數(shù)據(jù)格式具備規(guī)范性和高識別效應,可以在小容量多種類的數(shù)據(jù)傳輸中使用。JSON數(shù)據(jù)格式由于具有文本特性,能夠更好處理大容量數(shù)據(jù)傳輸。

關鍵詞:Android通信;Android應用開發(fā);Servlet通信

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)04-0054-02

1 手機客戶端與應用服務器的請求響應過程

近年來,隨著移動互聯(lián)網(wǎng)在社會經(jīng)濟中的廣泛應用,智能手機作為實用方便的客戶端移動設備,已成為移動網(wǎng)絡應用最重要的網(wǎng)絡連接設備。Android作為智能手機的操作系統(tǒng),被眾多手機生產(chǎn)商所接受,同時基于它的應用軟件幾乎包涵了社會生活的各個領域,已成為當今影響力最強的操作系統(tǒng)之一。

在與Android客戶端進行交互數(shù)據(jù)的應用服務器處理上,Java Servlet是運行在Web服務器或應用服務器上的程序,作為來自客戶端請求和應用程序之間的連接層。使用 Servlet,可以收集來自網(wǎng)頁表單和其他客戶端的用戶數(shù)據(jù),呈現(xiàn)來自數(shù)據(jù)庫或者其他源的記錄,并可以向客戶端返回執(zhí)行后的數(shù)據(jù)。

在與Android客戶端進行交互數(shù)據(jù)的應用服務器處理上,Java Servlet是運行在Web服務器或應用服務器上的程序,作為來自Web瀏覽器或其他HTTP客戶端請求和HTTP服務器上的數(shù)據(jù)庫或應用程序之間的中間層。使用 Servlet,可以收集來自網(wǎng)頁表單和其他客戶端的用戶數(shù)據(jù),呈現(xiàn)來自數(shù)據(jù)庫或者其他源的記錄,并可以向客戶端返回執(zhí)行后的數(shù)據(jù)。Java Servlet具有以下優(yōu)勢:

(1)Servlet在Web服務器的地址空間內(nèi)執(zhí)行。不必再創(chuàng)建一個單獨的進程來處理每個客戶端請求,提高了應用服務的效率和執(zhí)行速度。

(2)Servlet獨立于平臺操作,可以實現(xiàn)跨平臺使用。

(3)Servlet是安全可信任的。服務器上的Java安全管理器執(zhí)行了一系列限制,以保護服務器計算機上的資源。

(4)Java類庫的全部功能對 Servlet 來說都是可用的。可以通過sockets和RMI機制與applets、數(shù)據(jù)庫或其他軟件進行交互。

Servlet執(zhí)行過程一般包括:

(1)讀取客戶端(瀏覽器或手機)發(fā)送的顯式的數(shù)據(jù)。

(2)讀取客戶端(瀏覽器)發(fā)送的隱式的 HTTP 請求數(shù)據(jù)。這包括 cookies、媒體類型和瀏覽器能理解的壓縮格式等。

(3)處理數(shù)據(jù)并生成結果。這個過程可能需要訪問數(shù)據(jù)庫,執(zhí)行RMI或CORBA調用,調用Web服務,或者直接計算得出對應的響應。

(4)發(fā)送顯式的數(shù)據(jù)(即文檔)到客戶端(瀏覽器或手機)。該文檔的格式可以是多種多樣的,包括文本文件(HTML 或 XML)、二進制文件(GIF 圖像)、Excel 等。

(5)發(fā)送隱式的HTTP響應到客戶端(瀏覽器或手機)。這包括指出瀏覽器或其他客戶端被返回的文檔類型(例如 HTML),設置 cookies 和緩存參數(shù),以及其他類似的任務。

2 應用服務器響應XML格式數(shù)據(jù)的處理過程

手機客戶端連接Web服務器,向Servlet服務發(fā)出請求數(shù)據(jù),然后接收服務響應后的XML格式數(shù)據(jù),并進行數(shù)據(jù)解析。主要代碼如下:

(1)手機客戶端向服務器發(fā)出數(shù)據(jù),并接收返回的XML數(shù)據(jù),進行處理。

//客戶端向服務器發(fā)送請求

String urlString = 服務器地址+應用程序名 + "ClassInfoServlet?action=操作類型";

URL url = new URL(urlString);

//接收服務器處理后的XML數(shù)據(jù)

......

XMLReaderxr = 轉換對象.getXMLReader();

XML文件處理類XML處理對象 = new XML文件處理類();

xr.setContentHandler(XML文件處理對象);

//獲取數(shù)據(jù)并轉換成XML文件

......

xr.parse(is);

Return classInfoListHander.獲取數(shù)據(jù)方法();

其中XML文件處理類。其內(nèi)容如下:

public class XML文件處理類 extends DefaultHandler {

//處理XML文件數(shù)據(jù)值

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服務接收客戶端的請求,并進行數(shù)據(jù)處理。

void doPost( ) throws ServletException, IOException{

/*獲取action參數(shù),根據(jù)action的值執(zhí)行不同的業(yè)務處理*/

String action = request.getParameter("action");

if(action.equals(請求類型)) {

/* 獲取請求參數(shù),并執(zhí)行具體的業(yè)務處理操作 */

......

//向客戶端返回XML數(shù)據(jù)

StringBuffer sb = new StringBuffer();

//建立返回數(shù)據(jù)的XML文檔

sb.append(開始標簽).append("\r\n")

.append(子項開始標簽)

.append(子項數(shù)據(jù))

.append(子項結束標簽).append("\r\n")

.append(子項開始標簽)

.append(子項數(shù)據(jù))

.append(子項結束標簽).append("\r\n")

......

sb.append(結束標簽).append("\r\n");

PrintWriter out = response.getWriter();

out.print(sb.toString());

}

服務器的Servlet向Android客戶端返回XML格式數(shù)據(jù)

3 應用服務器響應JSON格式數(shù)據(jù)的處理過程

手機客戶端連接Web服務器,向Servlet服務發(fā)出請求數(shù)據(jù),然后接收服務響應后的JSON格式數(shù)據(jù),并進行數(shù)據(jù)解析,主要代碼如下:

(1)手機客戶端向服務器發(fā)生請求數(shù)據(jù),并接收返回的JSON格式數(shù)據(jù),進行處理:

String urlString = 服務器地址+應用程序名 + "ClassInfoServlet?action=操作類型";

urlString += "&參數(shù)屬性=" + URLEncoder.encode(參數(shù)值, "UTF-8") + "";

urlString += "&參數(shù)屬性=" + URLEncoder.encode(參數(shù)值, "UTF-8") + "";

//連接服務器并且發(fā)送請求數(shù)據(jù)

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數(shù)據(jù)

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);

//處理數(shù)據(jù)

}

}

4 結語

Android智能手機作為當今流行的移動互聯(lián)網(wǎng)客戶端,已廣泛應用于各種生產(chǎn)生活領域內(nèi),對信息數(shù)據(jù)的快速傳播與知識交流起了極大的促進作用。但是作為一種嵌入式設備,智能手機的處理速度和使用容量有限,當處理數(shù)據(jù)量大時,必將數(shù)據(jù)上傳到企業(yè)服務器處理。因此在客戶端與服務器之間的數(shù)據(jù)交互尤為重要,成為提高整體系統(tǒng)使用率的重要環(huán)節(jié)。本文提出了XML數(shù)據(jù)和JSON數(shù)據(jù)兩種交換格式,適合不同的應用領域,使用數(shù)據(jù)在網(wǎng)絡的傳輸更為便捷流暢。

參考文獻:

[1] MEIERR.Android4高級編程[M].北京:清華大學出版社,2013.

[2] 陳法海,楊斌.Android系統(tǒng)中Wi-Fi網(wǎng)絡的研究與實現(xiàn)[J].成都信息工程學院學報,2010,25(5).

[3] 陳益強.簡析Android系統(tǒng)的安全性能[J].信息系統(tǒng)工程,2011(9).

[4] 李寧.Android開發(fā)權威指南[M].北京:人民郵電出版社,2013:10-11.

[5] 曾建平.Android系統(tǒng)架構及應用程序開發(fā)研究[J].微計算機信息,2011,27(9).

【通聯(lián)編輯:代影】

主站蜘蛛池模板: 亚洲欧美日韩天堂| 99在线观看免费视频| 99尹人香蕉国产免费天天拍| 人妻出轨无码中文一区二区| 无码一区中文字幕| 国产自无码视频在线观看| 青青操国产视频| 国产在线麻豆波多野结衣| 中文成人在线| 乱色熟女综合一区二区| 国产微拍一区二区三区四区| 亚洲人成网址| 女同久久精品国产99国| 国产欧美视频在线观看| 国产成人精品日本亚洲77美色| 免费人成在线观看视频色| 日韩美一区二区| 亚洲香蕉久久| 韩日免费小视频| 色首页AV在线| 国产高清无码第一十页在线观看| 亚洲精品爱草草视频在线| 毛片免费高清免费| 色婷婷成人| 国产在线高清一级毛片| 日本午夜精品一本在线观看 | 免费观看无遮挡www的小视频| 特级毛片免费视频| 免费啪啪网址| 乱人伦中文视频在线观看免费| 精品少妇人妻一区二区| 久久久久88色偷偷| 2022国产91精品久久久久久| 亚洲中文字幕无码mv| 国产性爱网站| 亚洲成网777777国产精品| 久久国产毛片| 国产福利免费在线观看| 成人精品午夜福利在线播放| 91人妻在线视频| aa级毛片毛片免费观看久| 亚洲国产第一区二区香蕉| 日韩成人在线视频| 亚洲最新在线| 欧美福利在线播放| 国产在线无码av完整版在线观看| 精品久久国产综合精麻豆| 麻豆精品在线视频| 波多野结衣在线se| 免费国产一级 片内射老| 综合久久久久久久综合网| 国产网站黄| 亚洲一区波多野结衣二区三区| 黄色网页在线观看| аv天堂最新中文在线| 日韩福利在线视频| 99精品这里只有精品高清视频| 青草视频在线观看国产| 午夜小视频在线| 欧美不卡在线视频| 国国产a国产片免费麻豆| 亚欧成人无码AV在线播放| 色婷婷在线播放| 免费国产在线精品一区| 美女扒开下面流白浆在线试听 | 国产9191精品免费观看| 久久精品aⅴ无码中文字幕| 大陆精大陆国产国语精品1024| 91精品国产自产在线老师啪l| 亚洲美女视频一区| 日本精品一在线观看视频| 青青草原国产av福利网站| 熟妇丰满人妻| 国产AV无码专区亚洲精品网站| 性视频久久| 无码精品国产dvd在线观看9久| 国产成人高清亚洲一区久久| 国产成人a毛片在线| 亚洲人成影院午夜网站| 亚洲欧洲日本在线| 国产欧美日韩免费| 日韩国产精品无码一区二区三区 |