新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一步步教你為網(wǎng)站開發(fā)Android客戶端

一步步教你為網(wǎng)站開發(fā)Android客戶端

作者: 時(shí)間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

注:本文來自友盟-安卓巴士教程大賽第一名獲獎(jiǎng)作品,作者安卓巴士的ID為liupeinye。推薦給所有剛剛開始接觸Android開發(fā)的朋友們!

本文引用地址:http://2s4d.com/article/201610/305463.htm

本文面向Android初級(jí)開發(fā)者,有一定的Java和Android知識(shí)即可。

文章覆蓋知識(shí)點(diǎn):HttpWatch抓包,HttpClient模擬POST請(qǐng)求,Jsoup解析HTML代碼,動(dòng)態(tài)更新ListView

背景介紹:客戶端(Client)或稱為用戶端,是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序。而android系統(tǒng)上的90%客戶端軟件都有一個(gè)共性,就是為了改善網(wǎng)頁(yè)在android系統(tǒng)上體驗(yàn)不佳而生,最具有影響力的軟件有:新浪微博、人人網(wǎng)、淘寶等,這類軟件最突出的特點(diǎn)就是,先有網(wǎng)站再有軟件。由于網(wǎng)絡(luò)技術(shù)發(fā)展的多樣性,手機(jī)瀏覽器往往無(wú)法跟隨它的步伐,為改善用戶體驗(yàn),網(wǎng)站客戶端軟件印運(yùn)而生。

以下內(nèi)容100%原創(chuàng),并在安卓巴士論壇首發(fā),如需轉(zhuǎn)載,請(qǐng)注明作者和出處。謝謝合作。

開發(fā)Android網(wǎng)站客戶端通常有兩種方法:第一種,通過服務(wù)端的開放平臺(tái),調(diào)用提供的API接口來開發(fā),比如說open sina;第二種,服務(wù)端沒有提供任何接口,你也沒有服務(wù)端任何數(shù)據(jù)庫(kù)訪問權(quán)限,就是一個(gè)純純粹粹的網(wǎng)站,要你做客戶端。今天,我要和大家分享的正是第二種情況。

這是一個(gè)簡(jiǎn)單的示意圖,告訴我們,數(shù)據(jù)是由網(wǎng)頁(yè)從數(shù)據(jù)庫(kù)中取出,我們要為這個(gè)系統(tǒng)做客戶端,我們就應(yīng)該這樣去改造它。

通過這樣間接的方法來訪問數(shù)據(jù)庫(kù),只要網(wǎng)頁(yè)能看到的內(nèi)容,我們的客戶端都能獲取到,而UI是由你自行制作,就可以使使用體驗(yàn)上一個(gè)臺(tái)階。

既然網(wǎng)頁(yè)是我們的數(shù)據(jù)樞紐,我們就從網(wǎng)頁(yè)分析著手。

該教程來自本人項(xiàng)目-掌上民大-真實(shí)經(jīng)驗(yàn),所以用項(xiàng)目中的”掌上圖書館”板塊來示范。

該項(xiàng)目任務(wù)為中南民族大學(xué)圖書館圖書查詢功能制作客戶端。

首先打開該網(wǎng)址http://www.lib.scuec.edu.cn/,我們會(huì)看到主界面

正中間就是查詢?nèi)肟?,我們輸?rdquo;android”進(jìn)行查詢

得到結(jié)果的網(wǎng)頁(yè),但我們能發(fā)現(xiàn),這個(gè)頁(yè)面是ILAS圖書管理系統(tǒng),所以真正的入口并不是上面紅圈的地方。

所以我繼續(xù)找,經(jīng)過短暫的觀察,發(fā)現(xiàn)入口在這里

我們點(diǎn)擊進(jìn)入

果然就是這貨,我們點(diǎn)擊書目查詢

就是它了。真正的入口就在這里,這時(shí)我們打開HttpWatch軟件,點(diǎn)”Record”,在搜索框里輸入”android”,點(diǎn)擊查詢,抓取以”android”為關(guān)鍵字搜索時(shí)瀏覽器的所有包。待結(jié)果界面載入完成后,HttpWatch上就會(huì)出現(xiàn)如下信息

我們先看Summary選項(xiàng)卡,我們可以初步了解,這是一個(gè)POST請(qǐng)求(Http請(qǐng)求中的一種,另一種是GET),POST到的網(wǎng)址是http://coin.lib.scuec.edu.cn/cgi-bin/IlaswebBib。

這樣我們的思路就清晰了,我們的客戶端需要模擬瀏覽器,向上述地址POST一個(gè)包,那個(gè)地址肯定會(huì)返回一個(gè)Content給我們,不出意外的話,Content里面就是我們要的書目信息。那么,瀏覽器POST上去的內(nèi)容是什么呢?我們點(diǎn)擊這條POST請(qǐng)求,看詳細(xì)信息,

由于是POST請(qǐng)求,我們先看POST DATA,里面是以鍵值對(duì)的形式存儲(chǔ)的,這里顯示了我們?yōu)g覽器在我們搜索”android”時(shí),POST的所有數(shù)據(jù)。那這些鍵值對(duì)又代表了什么呢,我們打開這個(gè)網(wǎng)頁(yè)的源碼來一探究竟。

從這段可以看出v_index是表示查找途徑的它有TITLE,AUTHOR,SUBJECT,CLASSNO,ISBN,CALLNO六種值

FLD_DAT_BEG和FLD_DAT_END分別是開始和結(jié)束年份

v_value表示用戶在搜索框中輸入的內(nèi)容

v_paggnum表示每頁(yè)顯示的書目條數(shù),有10 15 20三種

v_seldatabases是檢索庫(kù) 有0 1 2三種值v_LogicSrch是檢索方式 有0 1兩種值


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉