亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的校園網(wǎng)站客戶端的設計與實現(xiàn)

        2015-06-24 12:02:17梁轟王江平徐家喜
        電腦知識與技術 2015年11期
        關鍵詞:校園用戶信息

        梁轟++王江平++徐家喜

        摘要:在沒有提供校園網(wǎng)站服務器的開放平臺環(huán)境下,設計實現(xiàn)了一款基于Android的校園網(wǎng)站客戶端,該客戶端可以查詢校園的即時信息和非即時信息,以及校園卡圈存。該系統(tǒng)采用HttpClient技術實現(xiàn)信息門戶的登錄和訪問,并利用多線程和jsoup技術對信息門戶中師生關注的信息進行抓取和有效地提取,使用SQLite輕型數(shù)據(jù)庫對提取的數(shù)據(jù)進行存儲,并結合ORMLite持久化框架來對數(shù)據(jù)庫中的數(shù)據(jù)進行高效地增刪改查操作。

        關鍵詞:Android;校園網(wǎng)站客戶端;HttpClient;jsoup;ORMLite持久化框架+

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)11-0044-03

        The Design and Implementation of Campus Networks Client Based on Android

        LIANG Hong, WANG Jiang-ping, XU Jia-xi

        ( School of Information Engineering,Nanjing Xiaozhuang University,Nanjing 211171,China)

        Abstract: Without the servers open platform of the campus network, a client of campus network based on Android was designed and realized. Instant message and non-instant message could be read and money could be transferred from the bank card to the campus card on the client.The system used HttpClient to login and surf the portal system, used multithreading and jsoup to capture and extract valid data from the portal system, used SQLite database to store data and used ORMLite framework to perform CRUD operations.

        Key words:Android; client of campus network; HttpClient; jsoup; ORMLite persistence framework

        1 引言

        在國內,智能手機用戶和互聯(lián)網(wǎng)用戶數(shù)增長顯著。據(jù)《2013-2014年中國移動互聯(lián)網(wǎng)調查研究報告》,截至2014年6月,我國手機網(wǎng)民規(guī)模為5.27億,在整體網(wǎng)民中占比達83.4%[1],并且在2014年,大學生市場中智能手機普及率高達98%[2]。在智能終端的使用越來越廣泛的趨勢下,大學生也越來越傾向于使用智能終端設備來瀏覽網(wǎng)絡信息。但是目前大部分的校園網(wǎng)站是針對PC瀏覽器設計開發(fā)的,導致信息在智能終端設備屏幕上顯示比較凌亂且冗長,查找信息不方便,甚至有的出現(xiàn)無法訪問的情況,因此設計實現(xiàn)一款基于Android顯示簡潔的校園網(wǎng)站客戶端是極具實用意義的。

        在基于Android的校園網(wǎng)站客戶端中,用戶能夠高效便捷地獲取校園網(wǎng)站的即時信息與非即時信息。一些如報名和考試等重要的即時信息能夠被推送到該校園網(wǎng)站客戶端上,使校園通知公告的及時性得到提高。同時用戶還可以快速地查詢如:課表、成績、借閱書籍等個人的非即時信息。

        Android校園網(wǎng)站客戶端獲取上述即時消息和非即時消息的數(shù)據(jù)有兩種方案,一種是擁有校園網(wǎng)站的的賬號和密碼以合法用戶身份進行訪問。另一種是學校直接提供校園網(wǎng)站服務器端的開放平臺,開發(fā)時直接調用該平臺的數(shù)據(jù)接口獲得數(shù)據(jù)。開放平臺是一個web服務,負責接收客戶端提交的參數(shù),并根據(jù)參數(shù)執(zhí)行相應的業(yè)務邏輯[3],最終將請求的數(shù)據(jù)返回給客戶端。但此類系統(tǒng)一般不提供開放平臺的接口,因此,基于Android的校園網(wǎng)站客戶端將以某學院的校園網(wǎng)站為例,采用第一種方案來獲取校園網(wǎng)站數(shù)據(jù),實現(xiàn)校園網(wǎng)站客戶端。

        2 模塊設計

        由于設計的客戶端應用程序的用戶主要是在校大學生,他們比較關注自己的學習成績,學分,一卡通使用情況和圖書借閱情況等,因此Android校園網(wǎng)站客戶端將這些功能集成在以下四大模塊中:用戶功能模塊、教務模塊、一卡通模塊和設置模塊。

        為了保證合法用戶能安全的使用Android校園網(wǎng)站客戶端,用戶功能模塊中有登錄和注銷的功能。

        個人數(shù)據(jù)模塊中有個人信息、選課信息、成績信息、考試信息、借閱信息和讀者信息的功能,用戶通過該模塊的功能可以查詢個人的教務和圖書信息。

        一卡通模塊主要包括校園卡余額信息、校園卡基本信息、銀行卡余額信息、校園卡消費信息、校園卡圈存和密碼修改功能,用戶通過該模塊的功能能夠方便地在智能終端上進行校園卡的常規(guī)操作。

        設置模塊中有退出登錄、清除數(shù)據(jù)、版本說明和免責聲明的功能,該模塊主要提供給用戶刪除本地用戶數(shù)據(jù)的功能。

        校園網(wǎng)站客戶端的功能圖如圖1所示。

        圖1 校園網(wǎng)站客戶端功能圖

        3 相關技術

        為了實現(xiàn)校園網(wǎng)站客戶端上述的所有功能,所需要使用的核心技術有HttpClient、jsoup和ORMLite。

        3.1 HttpClient

        HttpClient實現(xiàn)了所有 HTTP 的方法,如常見的 GET、POST、PUT、HEAD 等[4]。在Android校園網(wǎng)站客戶端中,主要使用GET方法獲取驗證碼,使用POST方法獲取信息門戶的Session信息,Session是允許客戶端和服務器端通過使用 HTTP 的請求與響應頭中的數(shù)據(jù)來交換狀態(tài)信息的技術[5],以便登錄信息門戶。從HttpClient對象中可以獲取訪問目標地址的文檔對象的二進制數(shù)據(jù)流,最終從該文檔流中提取出校園網(wǎng)站的即時信息和非即時信息,存入本地的SQLite數(shù)據(jù)庫中。在Android校園網(wǎng)站客戶端中,主要使用HttpClient技術獲取校園網(wǎng)站各個信息頁面的源碼,為jsoup解析頁面提取上述即時與非即時數(shù)據(jù)奠定基礎。

        3.2 jsoup

        jsoup是一款Java的HTML解析器,它提供了一套便利的API,能夠通過文檔對象模型、層疊樣式表和類似于jQuery的操作方法來抓取和操作數(shù)據(jù)[6]。jsoup獲取數(shù)據(jù)有兩大方法:第一種是通過分析文檔對象模型的網(wǎng)頁標簽和元素獲取數(shù)據(jù);第二種方法類似jQuery方式,使用jsoup包下的select元素選擇器。

        在Android校園網(wǎng)站客戶端中,主要利用jsoup提供的選擇器來篩選出文檔對象中的有效數(shù)據(jù),如選課結果表單中的課程名、上課時間、地點、周期等數(shù)據(jù)。

        3.3 ORMLite

        ORM (Object/Relation Mapping)即對象關系映射,是一種為了解決面向對象與關系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術。Android校園網(wǎng)站客戶端中主要利用ORMLite的對象關系映射,在面向對象Java和關系型數(shù)據(jù)庫SQLite之間數(shù)據(jù)轉換時,避免設計繁瑣的SQL語句,提高開發(fā)效率。

        4 Android校園網(wǎng)站客戶端實現(xiàn)

        依據(jù)功能圖設計的移動客戶端的部分界面如圖2所示,在首頁界面中,主要提供了個人信息、選課信息、成績信息、考試信息、借閱信息和讀者信息的有效數(shù)據(jù),在一卡通界面中,主要提供了校園卡余額信息、校園卡基本信息、銀行卡余額信息、校園卡消費信息。

        圖2 移動客戶端的部分界面圖

        Android校園網(wǎng)站客戶端的核心技術是如何獲取校園網(wǎng)站的有效數(shù)據(jù),而數(shù)據(jù)獲取主要包括獲取HTML文檔數(shù)據(jù),提取有效數(shù)據(jù)和存取數(shù)據(jù),流程圖如圖3所示。

        圖3 校園網(wǎng)站客戶端獲取數(shù)據(jù)流程圖

        4.1 獲取HTML文檔數(shù)據(jù)

        HTML文檔數(shù)據(jù)需要使用HttpClient對象來獲取,獲取流程如圖4所示。

        圖4 HttpClient獲取HTML文檔數(shù)據(jù)流程圖

        以登錄門戶系統(tǒng)為例,通過HttpClient獲取HTML文檔數(shù)據(jù)的核心代碼如下:

        HttpPost httpPost = new HttpPost(“request_url”);

        httpPost.setHeader("Cookie", "JSESSIONID=" + cookie);

        List nvps = new ArrayList();

        nvps.add(new BasicNameValuePair("username", params[0]));

        httpPost.setEntity(new UrlEncodedFormEntity(nvps));

        DefaultHttpClient httpClient = new DefaultHttpClient();

        HttpResponse httpResponse = httpClient.execute(httpPost);

        HttpEntity entity = httpResponse.getEntity();

        String response_string = EntityUtils.toString(entity,"utf-8");

        上述代碼中,HttpPost對象的主要作用是將Android 手機端的數(shù)據(jù)(NameValuePair對象)提交給Web 應用服務器[8]。參數(shù)request_url是登錄驗證用戶名和密碼的請求鏈接,參數(shù)cookie是指訪問該鏈接所需要的SessionID,params[0]是數(shù)組params中的用戶名,username是鍵值對的鍵,該鍵必須與校園網(wǎng)站表單中的name值一致,否則客戶端的請求無法通過校園網(wǎng)站的驗證。DefaultHttpClient是發(fā)送HttpPost請求的類,服務器端處理完請求后會向客戶端發(fā)送響應結果,該結果需使用HttpResponse類接收。EntityUitls的toString方法可以將響應結果轉換為字符串,即響應結果的HTML字符串。

        4.2 提取有效數(shù)據(jù)

        jsoup提供了parse(String HTML)的方法,將HTML字符串轉換為jsoup可操作的文檔對象模型。提取數(shù)據(jù)需要使用jsoup提供的select元素選擇器,實現(xiàn)代碼如下:

        Document doc=jsoup.parse(response_string);

        doc.getElementById("studentNumber").val();

        doc.select("div[tabid=01] table tr.t_con");

        第一種方法:選擇頁面源碼中id屬性為studentNumber的標簽,并通過val()方法獲得該標簽下的值,此處即學號。

        第二種方法:復雜元素選擇器,選擇文檔對象模型中tabid屬性值為01下的div標簽,再選擇該div下的table元素,接著選擇該table下class屬性值為t_con的所有tr元素。

        在校園網(wǎng)站客戶端中,主要運用以上兩種方法來對校園網(wǎng)站中的個人信息、選課信息、成績信息、考試信息、借閱信息和讀者信息等數(shù)據(jù)進行抓取,避免了直接訪問頁面而出現(xiàn)的訪問不方便或者無法訪問的情況。

        4.3 存取數(shù)據(jù)

        ORMLite提供了許多在SQLite數(shù)據(jù)庫中便捷地增、刪、改、查數(shù)據(jù)的方法,使用ORMLite需要如下幾步工作:

        1)引入ORMLite的jar包:將jar包復制到工程的libs目錄下。

        2)構建持久化實體類,主要使用注解@DatabaseTable將如Entity類映射到數(shù)據(jù)庫中的Entity表,使用注解@DatabaseField將成員屬性映射到Entity表中的字段,不別名字段名則以成員名命名。

        3)創(chuàng)建DatabaseHelper類,該類繼承OrmLiteSqliteOpenHelper,實質是間接繼承了SQLiteOpenHelper類,主要用來創(chuàng)建數(shù)據(jù)庫和表等基本數(shù)據(jù)庫的操作。

        4)創(chuàng)建DAO類并使用ORMLite提供的方法來存取數(shù)據(jù)。

        校園網(wǎng)站客戶端中,ORMLite技術主要用作保存于讀取從門戶網(wǎng)站中所提取的數(shù)據(jù),ORMLite提供的增、刪、改和查數(shù)據(jù)的方法擁有便捷和快速的特點,在開發(fā)過程中節(jié)省了設計繁瑣SQL語句的時間。

        5 總結

        基于Android的校園網(wǎng)站客戶端是在沒有服務器端的開放平臺下設計實現(xiàn)的系統(tǒng),利用FireFox的FireBug調試工具和Fillder抓包工具[9]對校園網(wǎng)站進行抓包,分析其請求頭部與響應結果,再利用jsoup來抓取頁面中的有效數(shù)據(jù),并通過ORMLite對數(shù)據(jù)進行存取。在消息推送方面則采用百度云推送平臺。該系統(tǒng)能夠使校園網(wǎng)站的信息在移動智能終端得以更加方便、快捷的查詢,解決了在智能終端上訪問校園網(wǎng)站不方便或者無法訪問的問題,并且用戶還可以在客戶端上進行校園卡圈存等操作,使校園一卡通系統(tǒng)移動化,具有良好的實用性。同時,也為廣大Android開發(fā)者提供了一種在沒有服務器端的開放平臺下進行網(wǎng)站客戶端開發(fā)的解決方案。

        參考文獻:

        [1] 2013-2014年中國移動互聯(lián)網(wǎng)調查研究報告[EB/OL].[2014-08-26].[2014-08-29]. http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/ydhlwbg/201408/t20140826_47880.htm.

        [2] 樊慧琴.大學生手機市場份額:移動約占七成[EB/OL]. [2014-04-03].[2014-08-29]. http://news.youth.cn/gn/201404/t20140403_4969997.htm.

        [3] 高永朋.網(wǎng)站開放平臺的研究與實現(xiàn)[D].遼寧:東北大學,2013.

        [4] 王曉琳.基于HttpClient的代購同步技術研究與實現(xiàn)[J].微型電腦應用,2014,30(7):46-48.

        [5] 姜晗.基于Cookie和Session的身份認證機制的研究與實現(xiàn)[J].中國教育技術裝備,2014,28(4):36-37.

        [6] Jonathan Hedley.jsoup : Java HTML Parser [EB/OL].[2014-08-29]http://jsoup.org/.

        [7] 周鵬飛.基于MJPG_Streamer的移動視頻監(jiān)控系統(tǒng)的設計與研究[D].安徽:安徽理工大學,2013.

        [8] 劉平.Android手機訪問服務器的一種數(shù)據(jù)交互方法[J].電子設計工程.2010,8(9);96-102.

        [9] 鮮海.淺談以C#模擬登錄新浪騰訊微博[J].計算機光盤軟件與應用.2013,16(20):57-61.

        猜你喜歡
        校園用戶信息
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        校園的早晨
        琴童(2017年3期)2017-04-05 14:49:04
        春滿校園
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        開心校園
        如何獲取一億海外用戶
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        爆笑校園
        射精情感曰妓女色视频| 国产精品无码翘臀在线观看| 日韩一区二区中文字幕视频| 国产实拍日韩精品av在线| 亚洲乱亚洲乱妇| 暖暖免费 高清 日本社区在线观看| 无码精品人妻一区二区三区98| 国产精品自拍午夜伦理福利| 精品伊人久久大线蕉色首页| 中文字幕精品久久久久人妻红杏1| 无码免费午夜福利片在线| 91青青草在线观看视频| 极品粉嫩小仙女高潮喷水操av| 午夜精品久久久久久毛片| 性一乱一搞一交一伦一性| 人妻av一区二区三区av免费| 在线观看一区二区三区视频| 免费成人电影在线观看| 国产在线精品一区二区| 久久精品国产72国产精福利| 水蜜桃视频在线观看入口| 国产强被迫伦姧在线观看无码| 精品熟女少妇av免费观看| 久草视频在线这里只有精品| 91精品久久久老熟女91精品| 色偷偷偷久久伊人大杳蕉| 亚洲成人欧美| 精品人妻一区二区视频| 欧美老妇交乱视频在线观看| 亚洲日韩精品欧美一区二区一 | 国产午夜亚洲精品不卡福利| 狼人狠狠干首页综合网| 国产精品成人无码久久久久久| 亚洲一区二区三区成人网站| 久久久国产不卡一区二区| 国产三级av大全在线爽| 国产md视频一区二区三区| 91精品视品在线播放| 999久久久免费精品国产牛牛| 伊人久久大香线蕉av最新午夜| 67194熟妇人妻欧美日韩|