页面抓取相关之HttpClient

百科名片

HTTP协议可能是现在Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.1.


环境配置

从官网下载httpclient,下载地址http://hc.apache.org/downloads.cgi; 之后将httpclient的jar包导入工程


主要应用的类

类名

作用

HttpClient

HttpClient代表了一个http的客户端,HttpClient接口定义了大多数基本的http请求执行行为.

HttpEntity

entity是发送或者接收消息的载体。entities 可以通过request和response获取到.

HttpConnection 

HttpConnection代表了一个http连接。



一个简单的工具类

	/**
	 * USER_AGENT:User-Agent属性值.
	 * 
	 * @since JDK 1.6
	 */
	public static final String	USER_AGENT		= "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.2)";
	/**
	 * ACCEPT_LANGUAGE:Accept-Language属性值.
	 * 
	 * @since JDK 1.6
	 */
	public static final String	ACCEPT_LANGUAGE	= "zh-cn,zh;q=0.5";
	/**
	 * ACCEPT_CHARSET:Accept-Charset属性值.
	 * 
	 * @since JDK 1.6
	 */
	public static final String	ACCEPT_CHARSET	= "GB2312,utf-8;q=0.7,*;q=0.7";

	/**
	 * pageDown: 获取网页代码
	 * 
	 * @author liuqi_nad
	 * @param url 网页的url
	 * @return
	 * @since JDK 1.6
	 */
	public static String pageDown(String url){
		HttpClient httpclient = new DefaultHttpClient();
		String pageContent = "";
		try {
			HttpGet httpget = new HttpGet(url);
			httpget.setHeader("User-Agent", USER_AGENT);
			httpget.setHeader("Accept-Language", ACCEPT_LANGUAGE);
			httpget.setHeader("Accept-Charset", ACCEPT_CHARSET);
			HttpResponse response = httpclient.execute(httpget);
			HttpEntity entity = response.getEntity();
			pageContent = EntityUtils.toString(entity);
		} catch (Exception e) {

			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {

		}
		return pageContent;

	}


这是一个非常简陋的工具类,里面使用了Httpclient的最基本用法。

首先创建Httpclient和HttpGet的实例,通过httpclient执行get请求

将返回的响应创建实体,最后通过提供的EntityUtils工具类将代码

打印出来



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值