最早知道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 可以通过request和response获取到.
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包。供大家学习测试。
分享到:
相关推荐
赠送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...
赠送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文档:...
包含翻译后的API文档:httpclient-4.5.5-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.5 使用方法:解压翻译后的API文档,用...
HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了丰富的API,使得开发者可以方便地发送HTTP请求并处理响应。在实际使用中,由于网络传输和编码转换的问题,可能会遇到...
赠送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...
包含翻译后的API文档:httpclient-4.5.12-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.12; 标签:apache、httpcomponents、httpclient、中英对照文档、jar...
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-...
包含翻译后的API文档:httpclient-4.5.13-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.13; 标签:apache、httpcomponents、httpclient、jar包、java、中英...
包含翻译后的API文档:httpclient-4.5.6-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpclient:4.5.6; 标签:apache、httpcomponents、httpclient、jar包、java、API...
标题中的"commons-httpclient3.1.jar,commons-codec1.3.jar,commons-logging1.1.1.jar"指的是三个关键的Java库文件,它们是Apache HttpClient项目的一部分,用于在Java应用程序中实现HTTP通信。这些JAR(Java ...
赠送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文档:...
赠送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...
4. **工具类的封装**:根据描述,有一个工具类能够有效解决乱码问题。通常,这样的工具类会包含一个方法,如`createHtmlPage`,它会处理所有与解码相关的细节,确保正确读取和处理响应内容。 5. **静态化处理**:在...
赠送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-...
中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 ...
包含翻译后的API文档:httpclient-4.5.2-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.2 使用方法:解压翻译后的API...
包含翻译后的API文档:httpclient-4.5.2-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.2 使用方法:解压翻译后的API文档,用...
包含翻译后的API文档:httpclient-4.5.3-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.httpcomponents,artifactId:httpclient,version:4.5.3 使用方法:解压翻译后的API文档,用...
赠送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