欢迎来到天天文库
浏览记录
ID:33854087
大小:1.59 MB
页数:16页
时间:2019-03-01
《一步步教你为网站开发android客户端》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一步步教你为网站开发Android客户端注:本文来自友盟-安卓巴士教程大赛第一名获奖作品,作者安卓巴士的ID为liupeinye。推荐给所有刚刚开始接触Android开发的朋友们!本文面向Android初级开发者,有一定的Java和Android知识即可。文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView背景介绍:客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。而android系统上的90%客户端软件都有一个共性,就是为了改善网页在android
2、系统上体验不佳而生,最具有影响力的软件有:新浪微博、人人网、淘宝等,这类软件最突出的特点就是,先有网站再有软件。由于网络技术发展的多样性,手机浏览器往往无法跟随它的步伐,为改善用户体验,网站客户端软件印运而生。以下内容100%原创,并在安卓巴士论坛首发,如需转载,请注明作者和出处。谢谢合作。开发Android网站客户端通常有两种方法:第一种,通过服务端的开放平台,调用提供的API接口来开发,比如说opensina;第二种,服务端没有提供任何接口,你也没有服务端任何数据库访问权限,就是一个纯纯粹粹的网站,要你做客户端。今天,我要和大家分享的正是第二种情况。这是
3、一个简单的示意图,告诉我们,数据是由网页从数据库中取出,我们要为这个系统做客户端,我们就应该这样去改造它。通过这样间接的方法来访问数据库,只要网页能看到的内容,我们的客户端都能获取到,而UI是由你自行制作,就可以使使用体验上一个台阶。既然网页是我们的数据枢纽,我们就从网页分析着手。该教程来自本人项目-掌上民大-真实经验,所以用项目中的”掌上图书馆”板块来示范。该项目任务为中南民族大学图书馆图书查询功能制作客户端。首先打开该网址http://www.lib.scuec.edu.cn/,我们会看到主界面正中间就是查询入口,我们输入”android”进行查询得到结
4、果的网页,但我们能发现,这个页面是ILAS图书管理系统,所以真正的入口并不是上面红圈的地方。所以我继续找,经过短暂的观察,发现入口在这里我们点击进入果然就是这货,我们点击书目查询就是它了。真正的入口就在这里,这时我们打开HttpWatch软件,点”Record”,在搜索框里输入”android”,点击查询,抓取以”android”为关键字搜索时浏览器的所有包。待结果界面载入完成后,HttpWatch上就会出现如下信息我们先看Summary选项卡,我们可以初步了解,这是一个POST请求(Http请求中的一种,另一种是GET),POST到的网址是http://c
5、oin.lib.scuec.edu.cn/cgi-bin/IlaswebBib。这样我们的思路就清晰了,我们的客户端需要模拟浏览器,向上述地址POST一个包,那个地址肯定会返回一个Content给我们,不出意外的话,Content里面就是我们要的书目信息。那么,浏览器POST上去的内容是什么呢?我们点击这条POST请求,看详细信息,由于是POST请求,我们先看POSTDATA,里面是以键值对的形式存储的,这里显示了我们浏览器在我们搜索”android”时,POST的所有数据。那这些键值对又代表了什么呢,我们打开这个网页的源码来一探究竟。从这段可以看出v_in
6、dex是表示查找途径的它有TITLE,AUTHOR,SUBJECT,CLASSNO,ISBN,CALLNO六种值FLD_DAT_BEG和FLD_DAT_END分别是开始和结束年份v_value表示用户在搜索框中输入的内容v_paggnum表示每页显示的书目条数,有101520三种v_seldatabases是检索库有012三种值v_LogicSrch是检索方式有01两种值Submit是查询或重填,有查询和重填两种值至此,我们弄清楚了POSTData里所有内容的含义和取值可能。但我们模拟POST请求为什么,其实就是为了得到搜索的书目信息,所以我们看一下返回的C
7、ontent是不是我们要的东西果然,就是我们搜到的书目信息,就以String的形式放在Content里面。最后我们查看一下Stream,截图,以防等下我们需要这里面的东西好了,这个页面的工作原理我们已经弄清楚了:用户在网页中输入搜索内容后,点击查询,浏览器会POST一个Data到目标网址,该网址的返回信息就是搜到的书目。我们开始编写代码,模拟这个过程,先打开eclipse建立一个Java项目(注意是Java项目,因为Java项目可以完美移植到Android项目中且调试方便,并且模拟Http请求这一过程没有用到任何Android功能)。导入HttpClient
8、的4个包commons-codec、commons-
此文档下载收益归作者所有