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

在制作 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还能做很多事情,我也只接触到皮毛而已。以后有时间会配合实例写写它的使用方法,抱怨一下:毕设盲审伤不起。。。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值