`
seattle2881
  • 浏览: 32497 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

HttpClient4入门应用之一----抓取网站内容(解决中文乱码)

阅读更多

最早知道HttpClient是和以前公司同事聊到一家公司的面试题,说是怎么判断一个网站运行是否正常,当时都不知道从哪方面下手。后来那同事说是用HttpClient,可以抓取到网站的HTMl代码,借此可以判断网站运行情况。在这里,我暂时还不知道是不是通过这个方法可以判断网站运行情况,但是真正让我学习HttpClient,却是进了现在这家公司,需要用它对自己写的Struts2里的Action进行测试。

对我来说,现在的理解就是HttpClient可以通过url模拟Http的请求,获得服务端的响应,并可以将响应的内容打印到控制台。至于官方的解释,以下是百科的。

 

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.

 

几个主要类介绍:

 

 

1.HttpClient

 

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

 

2.HttpEntity

 

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

 

3.HttpConnection

 

HttpConnection代表了一个http连接。

 

 

例子:

通过HttpClient抓取百度主页的内容。

 

//创建默认的httpClient实例

		HttpClient httpClient = new DefaultHttpClient();
		try {
			
			//创建HttpGet
			HttpGet httpGet = new HttpGet("http://www.ifeng.com");
			System.err.println("executing request " + httpGet.getURI());
			//执行get请求
			HttpResponse response = httpClient.execute(httpGet);
			//获取响应实体
			HttpEntity entity = response.getEntity();
			System.err
					.println("======================================================");
			//打印响应状态
			System.out.println(response.getStatusLine());
			if (entity != null) {
				//打印响应内容的长度

				System.out.println("Response content lenght:"
						+ entity.getContentLength());
				String content = EntityUtils.toString(entity);
				
				//解决HttpClient获取中文乱码 ,用String对象进行转码
				System.out.println("Response content:"
						+ new String(content.getBytes("ISO-8859-1"),"UTF-8"));
			}
			System.err
					.println("==========================================================");
		} catch (Exception e) {
			// TODO: handle exception
		}finally{
			//关闭连接,释放资源
			httpClient.getConnectionManager().shutdown();
		}
 

 

输出内容

 

 

executing request http://www.baidu.com/
----------------------------------------
HTTP/1.1 200 OK
Response content length: 6759
Response content: <!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>百度一下,你就知道      </title>…(此处省略打印信息)
-----------------------------------------

 

以下附上HttpClient4.1的完整应用jar包。供大家学习测试。

分享到:
评论
2 楼 bubiaiyou 2013-12-01  
搞笑, 你这样也叫解决乱码问题
1 楼 cun2001 2011-09-30  
引用
//解决HttpClient获取中文乱码 ,用String对象进行转码   
System.out.println("Response content:" + new String(content.getBytes("ISO-8859-1"),"UTF-8")); 
 

还是输出乱码,中文显示为???

使用如下输出办法解决:
String content = EntityUtils.toString(entity, "UTF-8");
// 解决HttpClient获取中文乱码 ,用String对象进行转码
System.out.println("Response content:" + content);

相关推荐

    httpclient-4.5.6-API文档-中文版.zip

    赠送jar包:httpclient-4.5.6.jar; 赠送原API文档:httpclient-4.5.6-javadoc.jar; 赠送源代码:httpclient-4.5.6-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.6.pom; 包含翻译后的API文档:httpclient...

    httpclient-4.5.13-API文档-中文版.zip

    赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...

    httpclient-4.5.12-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.5.12-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.12; 标签:apache、httpcomponents、httpclient、中英对照文档、jar...

    httpclient-4.5.6-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.5.6-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.6; 标签:apache、httpcomponents、httpclient、jar包、java、API...

    HttpClient--最全--安装包+官方文档(中文)

    HttpClient--最全--安装包+官方文档(中文),HttpClient--最全--安装包+官方文档(中文)

    httpclient-4.4.1-API文档-中文版.zip

    赠送jar包:httpclient-4.4.1.jar; 赠送原API文档:httpclient-4.4.1-javadoc.jar; 赠送源代码:httpclient-4.4.1-sources.jar; 赠送Maven依赖信息文件:httpclient-4.4.1.pom; 包含翻译后的API文档:httpclient...

    httpclient-4.5.5-API文档-中文版.zip

    包含翻译后的API文档:httpclient-4.5.5-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.5 使用方法:解压翻译后的API文档,用...

    httpclient-4.4-API文档-中文版.zip

    赠送jar包:httpclient-4.4.jar; 赠送原API文档:httpclient-4.4-javadoc.jar; 赠送源代码:httpclient-4.4-sources.jar; 赠送Maven依赖信息文件:httpclient-4.4.pom; 包含翻译后的API文档:httpclient-4.4-...

    httpclient-4.5.12-API文档-中文版.zip

    赠送jar包:httpclient-4.5.12.jar; 赠送原API文档:httpclient-4.5.12-javadoc.jar; 赠送源代码:httpclient-4.5.12-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.12.pom; 包含翻译后的API文档:...

    httpclient-4.2.5-API文档-中文版.zip

    赠送jar包:httpclient-4.2.5.jar; 赠送原API文档:httpclient-4.2.5-javadoc.jar; 赠送源代码:httpclient-4.2.5-sources.jar; 赠送Maven依赖信息文件:httpclient-4.2.5.pom; 包含翻译后的API文档:httpclient...

    httpclient-4.5.3-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.5.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.3; 标签:apache、httpcomponents、httpclient、jar包、java、中英...

    httpclient-4.5.10-API文档-中文版.zip

    赠送jar包:httpclient-4.5.10.jar; 赠送原API文档:httpclient-4.5.10-javadoc.jar; 赠送源代码:httpclient-4.5.10-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.10.pom; 包含翻译后的API文档:...

    httpclient-4.5.2-API文档-中文版.zip

    包含翻译后的API文档:httpclient-4.5.2-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.2 使用方法:解压翻译后的API文档,用...

    httpclient-4.5.13-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.5.13-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.13; 标签:apache、httpcomponents、httpclient、jar包、java、中英...

    httpclient-4.5.3-API文档-中文版.zip

    包含翻译后的API文档:httpclient-4.5.3-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.3 使用方法:解压翻译后的API文档,用...

    wechatpay-apache-httpclient-0.2.1.jar

    wechatpay-apache-httpclient-0.2.1.jar

    httpclient-4.4.1-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.4.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.4.1; 标签:apache、httpcomponents、httpclient、中英对照文档、jar包...

    httpclient-4.5.5-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.5.5-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.5 使用方法:解压翻译后的API...

    httpclient-4.5.10-API文档-中英对照版.zip

    包含翻译后的API文档:httpclient-4.5.10-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.10; 标签:apache、httpcomponents、httpclient、中英对照文档、jar...

    httpcore-4.2.4,httpclient-4.2.5,httpclient-cache-4.2.5,httpmime-4.2.5的jar包下载

    httpcore-4.2.4,httpclient-4.2.5,httpclient-cache-4.2.5,httpmime-4.2.5的jar包下载。 比如微信退款需要以上jar包

Global site tag (gtag.js) - Google Analytics