HttpClient组件及其在Android开发中的应用探讨
- 格式:doc
- 大小:24.50 KB
- 文档页数:5
HttpClient组件及其在Android开发中的应用探讨摘要:本文介绍了httpclient组件在web应用开发中的作用及基本使用方法,并探讨了在android手机客户端开发中的实际应用。
关键词:httpclient web客户端 android开发
中图分类号:tp311.52 文献标识码:a 文章编号:1007-9416(2013)01-0078-01
1 引言
http协议是目前internet上使用得最多、最重要的协议,除了以b/s模式(browser/server)开发的web应用系统之外,各类基于网络的设备、网络计算的发展等,都在不断地扩展着http的应用领域。
此外,即使是采用了b/s模式提供的信息服务,有时也需要通过定制的客户端程序而非用户驱动的浏览器来访问服务器资源。
httpclient组件为我们编写这一类java客户端程序提供了便捷有效的访问手段。
2 httpclient在web应用开发中的作用
2.1 httpclient简介
jdk的包已经提供了访问http协议的基本功能,但对于大部分应用程序来说,jdk库本身提供的功能还不够丰富和灵活。
httpclient是apache jakarta commons下的子项目,用来提供高效的、最新的、功能丰富的支持http协议的客户端编程工具包。
但httpclient并不是浏览器,例如它不支持对网页中javascript 脚本的执行。
2.2 httpclient的使用方法
httpclient实现了http协议中的get,post,put,head 等方法,可通过这些方法向基于http协议的服务器提交请求,并从服务器端得到返回的响应,程序根据业务逻辑,对响应头及响应正文做进一步的处理。
下面以访问服务器端的登录页面为例,给出以post方式访问服务器资源的一般方法。
defaulthttpclient client = new defaulthttpclient();
httppost post = new httppost(”http://localhost:8080/login.jsp”); //访问服务端的登录页面
list qparams = new arraylist();
q= new arraylist();
q.add(new basicnamevaluepair(”username”,“sys”));
q.add(new basicnamevaluepair(”passwd”,“neu”));
urlencodedformentity params = new urlencodedformentity (q,“utf-8”);
post.setentity(params);
string res=client.execute(post, new basicresponsehandler());
post.abort();
3 httpclient在android开发中的应用
在android开发中我们经常会与服务器进行数据的交互,为此android的sdk中提供了apache的httpclient组件,可方便地使
用httpclient组件来访问基于http的网络资源。
下面以企业内部公告系统为例,介绍利用httpclient实现android手机接收企业内部公告的设计思路。
3.1 服务端的开发
企业内部公告发布系统可以网页的形式提供信息发布平台,可选用当前主流的动态网站开发技术如jsp、等实现服务端程序。
为了支持手机客户端的查询,需编写根据用户名及时间点查询公告的web页面,该页面(getnews.jsp)查询用户的最新公告,结果以格式化字符串的形式返回。
限于篇幅,此代码略过。
3.2 手机客户端的开发
手机用户通过企业内部的用户名和密码登录系统后,启动后台服务线程,每隔一定的时间间隔向服务器端发起请求,查询发给自己的最新公告。
该service类的关键代码如下:
new thread(){
defaulthttpclient client=new defaulthttpclient();
public string getnews(long time){
string url=“http://10.0.2.2:8080/getnews.jsp
user=xuwz&last=“+time,res=””;
httpget get=new httpget(url);
try {res=client.execute(get, new basicresponsehandler ()); //获取返回的响应正文
get.abort(); } catch (exception e) {e.printstacktrace ();}
return res;
}
public void run() {
while(!quit){
news=getnews(time);
if (news!=null){
time=getlasttime(news);
shownotice(news);//以notification形式发布通知
writetimetostorage(time);
}
try { thread.sleep(interval*1000l);} catch (interruptedexception e) {
e.printstacktrace();
}}}
}.start();
4 结语
由于httpclient功能丰富,使用方便灵活,同时android平台的sdk中已经内嵌了对该组件的支持,可方便地实现各类基于http 协议的android客户端程序,httpclient组件在android手机开发中将会有越来越广泛的应用。
参考文献
[1]apache官方文档《httpclient overview》.网址:http:
///httpcomponents-client-ga/index.html.
[2]李刚.《疯狂android讲义》电子工业出版社,2011年11月.
[3]中国移动互联网基地.《移动应用开发技术》.机械工业出版社,2012年1月.。