注:本文来自友盟-安卓巴士教程大赛第一名获奖作品,作者安卓巴士的ID为liupeinye。推荐给一切刚刚开端触摸Android开发的朋友们!
本文面向Android初级开发者,有必定的Java和Android常识即可。
文章掩盖常识点:HttpWatch抓包,HttpClient模仿POST恳求,Jsoup解析HTML代码,动态更新ListView
布景介绍:客户端(Client)或称为用户端,是指与服务器相对应,为客户供给本地服务的程序。而android体系上的90%客户端软件都有一个共性,便是为了改进网页在android体系上体会欠安而生,最具有影响力的软件有:新浪微博、人人网、淘宝等,这类软件最杰出的特色便是,先有网站再有软件。因为网络技术发展的多样性,手机浏览器往往无法跟从它的脚步,为改进用户体会,网站客户端软件印运而生。
以下内容100%原创,并在安卓巴士论坛首发,如需转载,请注明作者和出处。谢谢合作。
开发Android网站客户端一般有两种办法:第一种,通过服务端的敞开渠道,调用供给的API接口来开发,比如说open sina;第二种,服务端没有供给任何接口,你也没有服务端任何数据库拜访权限,便是一个纯朴实粹的网站,要你做客户端。今日,我要和咱们共享的正是第二种状况。
这是一个简略的示意图,告知咱们,数据是由网页从数据库中取出,咱们要为这个体系做客户端,咱们就应该这样去改造它。
通过这样直接的办法来拜访数据库,只需网页能看到的内容,咱们的客户端都能获取到,而UI是由你自行制造,就能够使运用体会上一个台阶。
已然网页是咱们的数据纽带,咱们就从网页剖析着手。
该教程来自自己项目-掌上民大-实在经历,所以用项目中的”掌上图书馆”板块来演示。
该项目使命为中南民族大学图书馆图书查询功用制造客户端。
首要翻开该网址http://www.lib.scuec.edu.cn/,咱们会看到主界面
正中间便是查询进口,咱们输入”android”进行查询
得到成果的网页,但咱们能发现,这个页面是ILAS图书办理体系,所以真实的进口并不是上面红圈的当地。
所以我持续找,通过时间短的调查,发现进口在这儿
咱们点击进入
公然便是这货,咱们点击书目查询
便是它了。真实的进口就在这儿,这时咱们翻开HttpWatch软件,点”Record”,在查找框里输入”android”,点击查询,抓取以”android”为关键字查找时浏览器的一切包。待成果界面载入完成后,HttpWatch上就会呈现如下信息
咱们先看Summary选项卡,咱们能够开端了解,这是一个POST恳求(Http恳求中的一种,另一种是GET),POST到的网址是http://coin.lib.scuec.edu.cn/cgi-bin/IlaswebBib。
这样咱们的思路就明晰了,咱们的客户端需求模仿浏览器,向上述地址POST一个包,那个地址肯定会回来一个Content给咱们,不出意外的话,Content里边便是咱们要的书目信息。那么,浏览器POST上去的内容是什么呢?咱们点击这条POST恳求,看详细信息,
因为是POST恳求,咱们先看POST DATA,里边是以键值对的方法存储的,这儿显现了咱们浏览器在咱们查找”android”时,POST的一切数据。那这些键值对又代表了什么呢,咱们翻开这个网页的源码来一探终究。
从这段能够看出v_index是表明查找途径的它有TITLE,AUTHOR,SUBJECT,CLASSNO,ISBN,CALLNO六种值
FLD_DAT_BEG和FLD_DAT_END分别是开端和完毕年份
v_value表明用户在查找框中输入的内容
v_paggnum表明每页显现的书目条数,有10 15 20三种
v_seldatabases是检索库 有0 1 2三种值v_LogicSrch是检索方法 有0 1两种值