(7)过滤器: 用于动态过滤和处理传入 HTTP 请求的相关数据 。
(8)SSL: Forest 支持单向和双向验证的 HTTPS 请求,此模块用于处理 SSL 相关协议的内容
后端部分:后端为实际执行 HTTP 请求发送过程的第三方 HTTP API,目前支持okHttp3和httpclient两种后端 API
Spring Boot Starter Forest:提供对Spring Boot的支持
二、HttpClientHTTP 协议可能是现在 Inte.NET 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源 。
虽然JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活 。HttpClient用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议的最新版本 。
最初,HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议 。
如今,Apache Jakarta Commons HttpClient项目已经寿终正寝,不再开发和维护 。取而代之的是Apache Httpcomponents项目,它包括HttpClient和HttpCore两大模块,能提供更好的性能和更大的灵活性 。扩展:最全的java面试题库
2.1 主要功能HttpClient 提供的主要的功能:
- 实现了所有HTTP的方法(GET、POST、PUT、HEAD等)
- 支持自动转向
- 支持 HTTPS 协议
- 支持代理服务器
- ······
(1)创建HttpClient对象;
(2)创建请求方法的实例,并指定请求URL 。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象;
(3)如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数;
(4)调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse;
(5)调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容,程序可通过该对象获取服务器的响应内容;
(6)释放连接 。无论执行方法是否成功,都必须释放连接 。
三、Okhttp3.1 Okhttp简介Okhttp作为目前Android使用最为广泛的网络框架之一,是一个高效的HTTP Client,其高效性体现在:
- 支持Spdy、Http1.X、Http2、Quic以及WebSocket
- 连接池复用底层TCP(Socket),减少请求延时
- 无缝的支持GZIP减少数据流量
- 缓存响应数据减少重复的网络请求
- 请求失败自动重试主机的其他ip,自动重定向
- ······
Okhttp的请求机制,可以概括为以下流程:
(1)通过OkhttpClient创建一个Call,发起同步或异步请求;
(2)okhttp通过Dispatcher对所有的RealCall(Call的具体实现类)进行统一管理,并通过execute()及enqueue()方法对同步或异步请求进行处理;
(3)execute()及enqueue()这两个方法会最终调用RealCall中的getResponseWithInterceptorChain()方法,从拦截器链中获取返回结果;
(4)拦截器链中,依次通过RetryAndFollowUpInterceptor(重定向拦截器)、BridgeInterceptor(桥接拦截器)、CacheInterceptor(缓存拦截器)、ConnectInterceptor(连接拦截器)、CallServerInterceptor(网络拦截器)对请求依次处理,与服务器建立连接后,获取返回数据,再经过上述拦截器依次 处理后,最后将结果返回给调用方 。具体过程如下图所示:

文章插图
3.3 具体架构图

文章插图
推荐阅读
- 七里河|老者用这款“神饵”在七里河钓鱼,让他成为整条河最靓的“仔”
- 无刘海短发图片
- 安热沙|这款防晒霜真的好,夏天别人晒黑了我却没黑,没有安耐晒小金瓶
- 护肤品|护肤品真不是越贵越好,这款国产护肤品,价格便宜还超好用!
- 马云花18亿打造的这款车,销量惨不忍睹,你觉得这车怎么样?
- 抖音十大神曲排行榜
- 葛根鸡米汤怎么做?
- 洗发水|“清扬、阿道夫”用腻了?试试这款国货洗发水,虽平价却真心好用
- 帽子|李宁推出的这款服装是特色还是忘本?
- 只需4分钟轻松搞定减肥早餐
