HttpClient源码解析系列:第五篇:HttpClientBuilder中的配置分析

HttpClientBuilder是HttpClient的配置中心,它通过多种策略、处理器和管理者构建请求处理链条。涉及的关键组件包括HttpRequestExecutor、HostnameVerifier、SSL相关组件、HttpClientConnectionManager等。拦截器HttpRequestInterceptor和HttpResponseInterceptor处理请求和响应,而Executor执行请求处理流程。其他关键属性如重试策略、路由规划、重定向策略等,用于管理连接和处理各种网络交互情况。
摘要由CSDN通过智能技术生成
 实际上,上述的Connection也好,Manager也好,我们都不是直接New出来使用的,而是利用HttpClientBuilder来提供丰富而集中的配置生成。先给结论:

代码中有基础的几个类型:Processor,Strategy, Registry, Provider,Resolver,Handler, Interceptor, Exec | Executor, Builder, Factory, Manager,Operator,Context, Config | Verifier | Planner | Store |  Matcher
Verifier | Planner | Store |  Matcher | Config 是按照特定功能划分的Util型工具类,而且其功能从这几个词的本身含义就能够非常明显的读出来
其中 Strategy 是请求过程中各中处理的应对方法,最终都会汇聚到Exec,再加入到execChain中。
而 Processor + HttpRequestInterceptor 则共同组成了对HTTPRequest的处理链条
Handler:处理器,用于执行特定的处理
Builder, Factory: 生成器,其中Factory倾向于简单的生产,而Builder倾向于很复杂的创建过程
Context:执行环境,本质上是一个Map,用于存储不同信息
Manager: 管理器,让对象执行核心功能,而对象本身则被Manager托管,比如生成、初始化、池化等
Provider:某种对象的提供者
Operator:执行者
Resolver:某种信息的提供者
Registry:本质上是一个Map, 用于注册不同的对象 

这其中应用最彻底的就是责任链模式,可以通过这个模式将大多数配置穿起来。
我们来看一下最核心的HttpProcessor,代码如下:
    private final HttpRequestInterceptor[] requestInterceptors;
    private final HttpResponseInterceptor[] responseInterceptors;
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Apache HttpClient 是一个开的、高性能的、易于使用的 HTTP 客户端库,广泛应用于 Java 应用程序。下面简单介绍一下 HttpClient解析: 1. HttpClient 的主要类 HttpClient 的核心类是 CloseableHttpClientHttpClientBuilderHttpClientBuilder 负责创建 CloseableHttpClient 实例,而 CloseableHttpClient 则封装了所有的 HTTP 请求和响应处理逻辑。 2. HttpClient 的请求发送流程 HttpClient 的请求发送流程包括以下几个步骤: - 创建 HttpClient 实例和 HttpUriRequest 实例; - 设置请求头和请求体; - 执行请求,并获取 HttpResponse 实例; - 解析响应,并将响应内容转换为所需的数据类型。 3. HttpClient 的连接管理 HttpClient 连接管理的核心是连接池,通过连接池可以提高 HTTP 请求的性能和效率。HttpClient 提供了 ConnectionReuseStrategy 接口和 ConnectionKeepAliveStrategy 接口,用于连接复用和连接保持的策略。 4. HttpClient 的认证和授权 HttpClient 提供了多种认证和授权方式,包括基本认证、摘要认证、NTLM 认证、OAuth 2.0、Bearer Token 等。 5. HttpClient 的异常处理 HttpClient 的异常处理包括两个方面:网络异常和 HTTP 异常。网络异常包括网络超时、连接断等,HTTP 异常包括 4xx 和 5xx 状态码等。HttpClient 提供了相应的异常类和异常处理机制,方便开发者进行异常处理。 以上是 HttpClient 的简单解析,希望对你有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值