百科名片
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工具类将代码
打印出来