`

HttpClient简介与实现

阅读更多
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和HtmlParser简介】 HttpClient是一个Java库,用于简化HTTP通信。它是由Apache Jakarta项目开发的,旨在提供更高效、更灵活的HTTP客户端支持。HttpClient提供了丰富的特性,遵循最新的HTTP标准,支持...

    HttpClient实现文件下载

    #### 一、简介与原理 在Java开发中,经常会遇到需要通过HTTP协议来获取网络资源的需求,例如从Web服务器下载文件。Apache HttpClient 是一个用于发送HTTP请求的Java类库,它提供了多种方法来处理HTTP请求,并且支持...

    用HttpClient类实现查询申通快递的功能

    #### 二、HttpClient简介 `HttpClient`是一种用于发送HTTP请求并接收HTTP响应的工具库。它为开发者提供了高级别的API来执行HTTP操作,如GET、POST等方法。在PHP中,`HttpClient`可以作为一种非常方便的方式来与远程...

    使用 HttpClient 和 HtmlParser 实现简易爬虫

    **HttpClient简介:** HttpClient是Jakarta Commons项目中的一个重要组件,用于提供灵活且高效的HTTP协议支持。它允许开发者轻松地创建基于HTTP协议的应用程序。尽管Java标准库已经提供了基本的HTTP访问功能,但在...

    使用HttpClient实现文件的上传所需lib

    1. **HttpClient简介**:Apache HttpClient是Apache软件基金会的一个开源项目,提供了对HTTP协议的全面支持,包括GET、POST、PUT等多种HTTP方法,以及Cookie管理、重定向处理等功能。它是Java应用进行网络通信的标准...

    httpclient4.2.1.zip

    一、HttpClient简介 HttpClient是一个开放源码的Java库,由Apache软件基金会维护。它为Java程序员提供了一个强大且灵活的框架,用于实现客户端HTTP通信。HttpClient 4.2.1作为其一个里程碑版本,引入了许多改进和新...

    httpclient jar

    一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其主要目标是为Java开发者提供一个功能丰富、性能高效、易用且可定制的HTTP客户端编程工具包。它支持HTTP/1.1和部分HTTP/2规范,可以处理复杂的...

    httpclient

    一、HttpClient简介 HttpClient是由Apache软件基金会开发的一个开源项目,主要用于处理HTTP协议。它支持HTTP/1.1和HTTP/2,提供了一系列的接口,用于创建、配置和执行HTTP请求,处理响应,并且具有强大的重试机制和...

    Android Asynchronous HTTPClient的实现和优化

    Android Asynchronous HTTPClient简介 AsyncHttpClient是由Loopj公司开发的一个轻量级、高性能的HTTP客户端库,特别适合于Android平台。它提供了简单的API,允许开发者快速发送GET、POST以及其他HTTP方法的请求,...

    httpclient3.1 javadoc chm版

    一、HttpClient简介 HttpClient 3.1是HttpClient的一个早期版本,主要功能包括支持HTTP/1.0和HTTP/1.1协议,提供对HTTPS的支持,具备处理重定向、Cookie管理、连接池等功能。它广泛应用于需要与Web服务器进行交互的...

    httpclient-4.5.3官方API中文文档_最新译版_2886K

    一、HttpClient简介 HttpClient是一款高效的HTTP客户端库,它支持多种HTTP标准,包括HTTP/1.1、HTTP/2以及WebSocket协议。HttpClient 4.5.3版本在稳定性、性能和易用性方面都有所提升,适用于Java平台的各种应用程序...

    httpclient和RestfuL风格上传下载文件

    **HTTPClient简介** HTTPClient是Apache HttpClient项目提供的一个Java库,它允许开发者发送HTTP请求并接收响应。这个库提供了丰富的API,可以定制请求头、设置连接超时、处理重定向等。使用HTTPClient,你可以方便...

    httpclient官网教程中文版

    #### 二、HttpClient简介 Apache HttpClient 是一个强大的客户端HTTP传输类库,旨在为Java开发者提供一个高效、灵活且易于使用的HTTP客户端解决方案。它不仅支持基本的HTTP协议,还能满足更复杂的HTTP场景需求,例如...

    httpClient4.1入门教程.pdf

    在本文档中,首先对HttpClient进行了简介,提到了它属于Apache Jakarta Common项目下的子项目,强调了其功能丰富和高效的特点。接着,文档列出了HttpClient的基本功能和特性,包括实现了HTTP协议的多个版本,支持...

    最全最新httpclient4.3.3

    一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其目标是提供一个支持HTTP协议的客户端编程工具包。HttpClient 4.3.3是该系列的一个稳定版本,它不仅包含了执行HTTP请求的基本功能,还提供了许多...

    httpclient-4.5.6.rar

    一、HttpClient 简介 HttpClient 是一个强大的 HTTP 客户端接口,提供了广泛的 HTTP 协议支持,包括标准和一些扩展特性。它支持多种认证机制、缓存策略、连接管理以及各种请求和响应处理机制。HttpClient 4.5.6 ...

    httpClient调用webservice接口

    #### 二、HttpClient简介 HttpClient是Apache的一个开源项目,它提供了一套丰富的API用于发送HTTP请求和接收HTTP响应。HttpClient不仅支持HTTP协议,还支持HTTPS等其他协议,并且能够处理重定向、代理服务器以及...

    httpclient.jar 文件下载

    一、HTTPClient简介 Apache HttpClient是一个开源项目,由Apache软件基金会维护,是Java平台上的一个HTTP客户端实现。它提供了全面的HTTP协议支持,包括HTTP/1.1和部分HTTP/2规范,同时支持HTTPS,代理服务器,...

    Java-HttpClient帮助文档

    一、HttpClient简介 HttpClient是一个支持HTTP协议的客户端编程工具包,它可以执行各种HTTP方法,如GET、POST、PUT、DELETE等。HttpClient 4.5.2版本提供了许多改进和新特性,包括更好的性能、更完善的错误处理以及...

Global site tag (gtag.js) - Google Analytics