1. HttpClient简介
HttpClient官网:
http://hc.apache.org/
HttpClient4.5:
http://hc.apache.org/httpcomponents-client-4.5.x/
HttpClient官方文档:
http://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/index.html
HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。
HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。虽然在JDK的javanet包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。爬虫主要是用HttpClient模拟浏览器请求第三方站点url,然后响应,获取网页数据,然后用Jsoup来提取我们需要的信息。
2. HttpClient实现HelloWorld
New -> Project -> Maven Project -> Next ->
Create a simple project -> Next ->
Group Id: com.andrew
Artifact Id: HttpClientDemo
Version: 0.0.1-SNAPSHOT
Packaging: jar
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.andrew</groupId>
<artifactId>HttpClientDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies>
</project>
HelloWorld01.java
package com.andrew.httpClient;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HelloWorld01 {
public static void main(String[] args) {
CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建httpClient实例
HttpGet httpGet = new HttpGet("http://www.csdn.net/"); // 创建httpget实例
CloseableHttpResponse response = null;
try {
response = httpClient.execute(httpGet); // 执行http get请求
} catch (ClientProtocolException e) { // http协议异常
e.printStackTrace();
} catch (IOException e) { // io异常
e.printStackTrace();
}
HttpEntity entity = response.getEntity(); // 获取返回实体
try {
System.out.println("网页内容:" + EntityUtils.toString(entity, "utf-8")); // 获取网页内容
} catch (ParseException e) { // 解析异常
e.printStackTrace();
} catch (IOException e) { // io异常
e.printStackTrace();
}
try {
response.close(); // response关闭
} catch (IOException e) { // io异常
e.printStackTrace();
}
try {
httpClient.close(); // httpClient关闭
} catch (IOException e) {
e.printStackTrace();
}
}
}
HelloWorld02.java
package com.andrew.httpClient;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HelloWorld02 {
public static void main(String[] args) throws ClientProtocolException, IOException {
CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建httpClient实例
HttpGet httpGet = new HttpGet("http://www.csdn.net/"); // 创建httpget实例
CloseableHttpResponse response = httpClient.execute(httpGet); // 执行http get请求
HttpEntity entity = response.getEntity(); // 获取返回实体
System.out.println("网页内容:" + EntityUtils.toString(entity, "utf-8")); // 获取网页内容
response.close(); // response关闭
httpClient.close(); // httpClient关闭
}
}
分享到:
相关推荐
【HttpClient和HtmlParser简介】 HttpClient是一个Java库,用于简化HTTP通信。它是由Apache Jakarta项目开发的,旨在提供更高效、更灵活的HTTP客户端支持。HttpClient提供了丰富的特性,遵循最新的HTTP标准,支持...
#### 一、简介与原理 在Java开发中,经常会遇到需要通过HTTP协议来获取网络资源的需求,例如从Web服务器下载文件。Apache HttpClient 是一个用于发送HTTP请求的Java类库,它提供了多种方法来处理HTTP请求,并且支持...
#### 二、HttpClient简介 `HttpClient`是一种用于发送HTTP请求并接收HTTP响应的工具库。它为开发者提供了高级别的API来执行HTTP操作,如GET、POST等方法。在PHP中,`HttpClient`可以作为一种非常方便的方式来与远程...
**HttpClient简介:** HttpClient是Jakarta Commons项目中的一个重要组件,用于提供灵活且高效的HTTP协议支持。它允许开发者轻松地创建基于HTTP协议的应用程序。尽管Java标准库已经提供了基本的HTTP访问功能,但在...
1. **HttpClient简介**:Apache HttpClient是Apache软件基金会的一个开源项目,提供了对HTTP协议的全面支持,包括GET、POST、PUT等多种HTTP方法,以及Cookie管理、重定向处理等功能。它是Java应用进行网络通信的标准...
#### 二、HttpClient简介 Apache HttpClient 是一个强大的客户端HTTP传输类库,旨在为Java开发者提供一个高效、灵活且易于使用的HTTP客户端解决方案。它不仅支持基本的HTTP协议,还能满足更复杂的HTTP场景需求,例如...
一、HttpClient简介 HttpClient是一个开放源码的Java库,由Apache软件基金会维护。它为Java程序员提供了一个强大且灵活的框架,用于实现客户端HTTP通信。HttpClient 4.2.1作为其一个里程碑版本,引入了许多改进和新...
一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其主要目标是为Java开发者提供一个功能丰富、性能高效、易用且可定制的HTTP客户端编程工具包。它支持HTTP/1.1和部分HTTP/2规范,可以处理复杂的...
一、HttpClient简介 HttpClient是由Apache软件基金会开发的一个开源项目,主要用于处理HTTP协议。它支持HTTP/1.1和HTTP/2,提供了一系列的接口,用于创建、配置和执行HTTP请求,处理响应,并且具有强大的重试机制和...
Android Asynchronous HTTPClient简介 AsyncHttpClient是由Loopj公司开发的一个轻量级、高性能的HTTP客户端库,特别适合于Android平台。它提供了简单的API,允许开发者快速发送GET、POST以及其他HTTP方法的请求,...
一、HttpClient简介 HttpClient 3.1是HttpClient的一个早期版本,主要功能包括支持HTTP/1.0和HTTP/1.1协议,提供对HTTPS的支持,具备处理重定向、Cookie管理、连接池等功能。它广泛应用于需要与Web服务器进行交互的...
一、HttpClient简介 HttpClient是一款高效的HTTP客户端库,它支持多种HTTP标准,包括HTTP/1.1、HTTP/2以及WebSocket协议。HttpClient 4.5.3版本在稳定性、性能和易用性方面都有所提升,适用于Java平台的各种应用程序...
**HTTPClient简介** HTTPClient是Apache HttpClient项目提供的一个Java库,它允许开发者发送HTTP请求并接收响应。这个库提供了丰富的API,可以定制请求头、设置连接超时、处理重定向等。使用HTTPClient,你可以方便...
在本文档中,首先对HttpClient进行了简介,提到了它属于Apache Jakarta Common项目下的子项目,强调了其功能丰富和高效的特点。接着,文档列出了HttpClient的基本功能和特性,包括实现了HTTP协议的多个版本,支持...
一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其目标是提供一个支持HTTP协议的客户端编程工具包。HttpClient 4.3.3是该系列的一个稳定版本,它不仅包含了执行HTTP请求的基本功能,还提供了许多...
一、HttpClient 简介 HttpClient 是一个强大的 HTTP 客户端接口,提供了广泛的 HTTP 协议支持,包括标准和一些扩展特性。它支持多种认证机制、缓存策略、连接管理以及各种请求和响应处理机制。HttpClient 4.5.6 ...
#### 二、HttpClient简介 HttpClient是Apache的一个开源项目,它提供了一套丰富的API用于发送HTTP请求和接收HTTP响应。HttpClient不仅支持HTTP协议,还支持HTTPS等其他协议,并且能够处理重定向、代理服务器以及...
一、HTTPClient简介 Apache HttpClient是一个开源项目,由Apache软件基金会维护,是Java平台上的一个HTTP客户端实现。它提供了全面的HTTP协议支持,包括HTTP/1.1和部分HTTP/2规范,同时支持HTTPS,代理服务器,...
一、HttpClient简介 HttpClient是一个支持HTTP协议的客户端编程工具包,它可以执行各种HTTP方法,如GET、POST、PUT、DELETE等。HttpClient 4.5.2版本提供了许多改进和新特性,包括更好的性能、更完善的错误处理以及...