Android 开发学习记录(2)---- httpclient使用(一)

来源:互联网 发布:cs 1.6 for mac 10.13 编辑:程序博客网 时间:2024/06/05 20:45

在制作 android 软件时,因为要设计抓取网页信息,所以用到了可以现成使用的 httpclient 库类。使用 httpclient 来模拟浏览网页的动作。

httpclient 主要模拟HTTP的 get 请求和 post 请求。首先要了解HTTP中的get与post:

1、根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。Get是向服务器发索取数据的一种请求

2、根据HTTP规范,POST表示可能修改变服务器上的资源的请求。Post是向服务器提交数据的一种请求

按我浅显的理解,get 一般是在直接访问获取网页信息;而 post 则可以通过填写表单信息后再访问某些网页信息。

在我的 android 软件开发过程中,get 主要用于获取要访问的网址信息,而当某些网址需要进行账号登陆时,则用 post 完成登陆账号填写密码等任务。

这里有篇博文对HTTP中的get 与post 进行了详细介绍,我就当个宣传员,把他博客地址贴上好了http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

既然对get 与 post 有所了解了,接下来就可以研究使用httpclient 了,下面主要介绍一下httpclient一些最基本的操作,最近真的比较忙,抽空会在以后的博文中慢慢写详细些。

一、httpclient 之 get

HttpClient client = new DefaultHttpClient();//新建一个HttpClient对象HttpGet request = new HttpGet("http://blog.csdn.net/oohaha_123");//新建一个HttpGet请求HttpResponse response = client.execute(request);//client执行访问网址的操作,返回信息以HttpResponse格式存放在response中
上面3行代码已经完成了访问网址的功能了(好简单有木有!)

既然已经获得网页信息了,但又该如何显示出来呢?下面这个自定义的函数就是将得到的 response 转为 string 形式,将网页源码以字符串的形式展现出来:

public String readWeb(HttpResponse response)throws ClientProtocolException, IOException{BufferedReader in = null;in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8"));  //要根据访问网址的编码更改对应的解码方式,这里我用的是UTF-8。StringBuffer string = new StringBuffer("");String lineStr = "";while( (lineStr = in.readLine()) != null){string.append(lineStr + "\n");}in.close();    String web = string.toString();return web;}
现在我就得到我想要获取的网页的全部源码信息了。

二、httpclient 之 post

这里我先不介绍用 post 完成表单填写等功能。等以后配合具体例子再一起说明,下面就简单贴出来用 httpclient 中post 完成上面get 相同功能的源码,其实几乎完全一样,只是将HttpGet 改为 HttpPost 罢了。

HttpClient client = new DefaultHttpClient(); HttpPost request = new HttpPost("http://blog.csdn.net/oohaha_123");HttpResponse response = client.execute(request);
读取网页信息的代码一模一样,就不在这里重复了。


上面只是介绍了httpclient 最基本的操作,其实httpclient还能做很多事情,我也只接触到皮毛而已。以后有时间会配合实例写写它的使用方法,抱怨一下:毕设盲审伤不起。。。



0 0
原创粉丝点击