`
seattle2881
  • 浏览: 32718 次
  • 性别: 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、乱码解决:实例

    HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了丰富的API,使得开发者可以方便地发送HTTP请求并处理响应。在实际使用中,由于网络传输和编码转换的问题,可能会遇到...

    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.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.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.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-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...

    commons-httpclient3.1.jar,commons-codec1.3.jar,commons-logging1.1.1.jar

    标题中的"commons-httpclient3.1.jar,commons-codec1.3.jar,commons-logging1.1.1.jar"指的是三个关键的Java库文件,它们是Apache HttpClient项目的一部分,用于在Java应用程序中实现HTTP通信。这些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.13.jar中文-英文对照文档.zip

    中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 ...

    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. **工具类的封装**:根据描述,有一个工具类能够有效解决乱码问题。通常,这样的工具类会包含一个方法,如`createHtmlPage`,它会处理所有与解码相关的细节,确保正确读取和处理响应内容。 5. **静态化处理**:在...

    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.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.X版本下载有的带源码包

    2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...

    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.3-API文档-中文版.zip

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

    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文档:...

    wechatpay-apache-httpclient-0.2.1.jar

    wechatpay-apache-httpclient-0.2.1.jar

Global site tag (gtag.js) - Google Analytics