天天看点

【Android开发】网络编程及Internet应用-使用HttpClient访问网络

    前面介绍了使用java.net包中的httpurlconnection类来访问网络,在一般情况下,如果只需要到某个简单页面提交请求并获取服务器的响应,完全可以使用该技术来实现。不过,对于比较复杂的联网操作,使用httpurlconnection类就不一定能满足要求,这时,可以使用apache组织提供的httpclient项目来实现。在android中,已经成功的集成了httpclient,所以可以直接在android中使用httpclient来访问网络。

    httpclient实际上是对java提供的访问网络的方法进行了封装。httpurlconnection类中的输入\输出流操作,在httpclient中被统一封装成了httpget、httppost和httpresponse类,这样就简化了操作。其中,httpget类代表发送get请求;httppost类代表发送post请求;httpresponse类代表处理响应的对象。

    同使用httpurlconnection类一样,使用httpclient发送http请求也可以分为发送get请求和post请求两种,下面分别进行介绍。

1.发送get请求

需要以下几个步骤

(1)创建httpclient对象

(2)创建httpget对象

(3)如果需要发送请求参数,可以直接将要发送的参数连接到url地址中,也可以调用httpget的setparams()方法来添加请求参数

(4)调用httpclient对象的execute()方法发送请求。执行该方法将返回一个httpresponse对象。

(5)调用httpresponse的getentity()方法,可获得包含服务器相应内容的httpentity对象,通过该对象可以获得服务器的相应内容。

下面通过一个实例来说明如何使用httpclient来发送get请求

界面:有一个"发送get请求"的按钮和一个文本区域,点击按钮可以在文本区查看服务器端返回的数据

res/layout/main.xml:

界面图略

主界面

mainactivity:

在安卓的配置文件androidmanifest.xml中别忘记加入访问网络的权限:

在javaee工作台(或myeclipse)中创建一个名为"wenxintest"的web应用,在index.jsp中写下如下关键代码:

接着将应用部署至tomcat,启动tomcat进行测试。

客户端测试结果如图

【Android开发】网络编程及Internet应用-使用HttpClient访问网络

证明数据已经由客户端发至web应用,然后经由服务端处理后发回客户端

2.发送post请求

同使用httpurlconnection类发送请求一样,对于复杂的请求数据,也需要使用post方式发送,使用httpclient发送post请求大致可以分为以下几个步骤:

(2)创建httppost对象

(3)如果需要发送请求参数,可以调用httppost的setparam()方法来添加请求参数,也可以调用setentity()方法来设置请求参数。

(4)调用httpclient对象的execute()方法发送请求,该方法将返回一个httpresponse对象

(5)调用httpresponse的getentity()方法,可以获得包含服务器相应内容的httpentity对象,通过该对象可以获取服务器的响应内容。

下面通过一个实例来说明如何使用httpclient来发送post请求

界面:一个编辑框用来填写昵称和微博信息,一个按钮用来实现发布,下面的文本框显示服务器返回的信息。

【Android开发】网络编程及Internet应用-使用HttpClient访问网络

转载请注明出处:http://blog.csdn.net/acmman/article/details/46414549

继续阅读