欢迎来到天天文库
浏览记录
ID:6057876
大小:27.50 KB
页数:5页
时间:2018-01-01
《httpclient组件和其在android开发中应用探析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、HttpClient组件和其在Android开发中应用探析 摘要:本文介绍了HttpClient组件在Web应用开发中的作用及基本使用方法,并探讨了在Android手机客户端开发中的实际应用。关键词:HttpClientWeb客户端Android开发中图分类号:TP311.52文献标识码:A文章编号:1007-9416(2013)01-0078-011引言HTTP协议是目前Internet上使用得最多、最重要的协议,除了以B/S模式(Browser/Server)开发的Web应用系统之外,各类基于网络的设备、网络计算的发展等,都在不断地扩展
2、着HTTP的应用领域。此外,即使是采用了B/S模式提供的信息服务,有时也需要通过定制的客户端程序而非用户驱动的浏览器来访问服务器资源。HttpClient组件为我们编写这一类Java客户端程序提供了便捷有效的访问手段。2HttpClient在Web应用开发中的作用2.1HttpClient简介JDK的java.net包已经提供了访问HTTP协议的基本功能,但对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakarta5Commons下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协
3、议的客户端编程工具包。但HttpClient并不是浏览器,例如它不支持对网页中JavaScript脚本的执行。2.2HttpClient的使用方法HttpClient实现了HTTP协议中的GET,POST,PUT,HEAD等方法,可通过这些方法向基于HTTP协议的服务器提交请求,并从服务器端得到返回的响应,程序根据业务逻辑,对响应头及响应正文做进一步的处理。下面以访问服务器端的登录页面为例,给出以POST方式访问服务器资源的一般方法。DefaultHttpClientclient=newDefaultHttpClient();HttpPost
4、post=newHttpPost(”http://localhost:8080/login.jsp”);//访问服务端的登录页面Listqparams=newArrayList();q=newArrayList();q.add(newBasicNameValuePair(”username”,“sys”));q.add(newBasicNameValuePair(”passwd”,“neu”));UrlEncodedFormEntityparams=new5UrlEncodedFormEntity(q,“UTF-8”);post.setEnt
5、ity(params);Stringres=client.execute(post,newBasicResponseHandler());post.abort();3HttpClient在Android开发中的应用在Android开发中我们经常会与服务器进行数据的交互,为此Android的SDK中提供了Apache的HttpClient组件,可方便地使用HttpClient组件来访问基于HTTP的网络资源。下面以企业内部公告系统为例,介绍利用HttpClient实现Android手机接收企业内部公告的设计思路。3.1服务端的开发企业内部公告发
6、布系统可以网页的形式提供信息发布平台,可选用当前主流的动态网站开发技术如JSP、ASP.NET等实现服务端程序。为了支持手机客户端的查询,需编写根据用户名及时间点查询公告的Web页面,该页面(getNews.jsp)查询用户的最新公告,结果以格式化字符串的形式返回。限于篇幅,此代码略过。3.2手机客户端的开发5手机用户通过企业内部的用户名和密码登录系统后,启动后台服务线程,每隔一定的时间间隔向服务器端发起请求,查询发给自己的最新公告。该Service类的关键代码如下:newThread(){DefaultHttpClientclient=ne
7、wDefaultHttpClient();publicStringgetNews(longtime){Stringurl=“http://10.0.2.2:8080/getNews.jspuser=xuwz&last=“+time,res=””;HttpGetget=newHttpGet(url);try{res=client.execute(get,newBasicResponseHandler());//获取返回的响应正文get.abort();}catch(Exceptione){e.printStackTrace();}returnr
8、es;}publicvoidrun(){while(!quit){news=getNews(time);if(news!=null){time=getLastTim
此文档下载收益归作者所有