【项目实战】为什么我选择使用CloseableHttpClient,而不是HttpClient,他们俩有什么区别?

news2024/11/24 17:41:34

一、HttpClient介绍

HttpClient是Commons HttpClient的老版本,已被抛弃,不推荐使用;

HttpClient是一个接口,定义了客户端HTTP协议的操作方法。
它可以用于发送HTTP请求和接收HTTP响应。
HttpClient接口提供了很多方法来定制请求和处理响应。
这个接口存在于Apache HttpClient和Java自带的java.net包中。

HttpClient没有close方法。无法关闭连接请求。

HttpClient是单例模式,只能在一个应用中使用一个HttpClient实例;

二、CloseableHttpClient介绍

CloseableHttpClient自HttpClient 4.5以后的新版本,推荐使用CloseableHttpClient。

在这里插入图片描述

理由如下:

2.1 可实现自动close

  • 实现Closeable接口,可实现自动close,CloseableHttpClient增加了一个close方法来关闭连接池。
    在这里插入图片描述

2.2 具有HttpClient的优势

  • CloseableHttpClient是HttpClient的子接口,它实现了HttpClient接口,具有HttpClient的优势 。

2.3 可构建多线程并发环境

  • CloseableHttpClient可以创建多个实例,每次创建一个HttpClient实例来处理任务,通过close方法关闭连接,释放资源。
    可以用CloseableHttpClient来构建多线程并发环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3288-android8-IR-选不中小窗口

IR红外功能,多么基础的功能,但是说来也不简单 因为,小小的红外看似基础,实则设计太多东西了, 从关机涉及Uboot;到内核kernel键码上报;到android键码的实现,小小的功能涉及大大的范围; (101条消息) rk3288-android8-IR-mouse_旋风旋风的博客-CSDN博客 大家可以看一下我之前的…

考研复试——数据结构

文章目录数据结构什么是数据结构?逻辑结构和物理结构有什么区别?为什么对单链表设置头结点?算法的特点?常见的数据结构有哪些?栈在后缀表达式求值的算法思想:队列溢出现象?解决方法?…

【项目精选】基于Java的超级玛丽游戏的设计与实现(源码+论文+视频)

点击下载源码 超级玛丽小游戏的JAVA程序,进入游戏后首先按空格键开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动性和马里奥的生命值。当马里奥通过最后一个场景后游戏结束…

项目经理如何管理好自己的时间

由于项目各种不定因素的存在,有时侯我们看到有些项目经理虽然成天忙得焦头烂额,但绩效甚微也就不足为怪了,如何能让宝贵的时间花在“刀刃”上,抓住了问题的要害,才能使工作事半功倍。 1、做好工作计划 项目经理比较擅…

目前已经有80多万个数据库迁移到了亚马逊云科技上

Gartner是全球最具权威的IT研究公司,在IT研究领域可以说是无人不知、无人不晓。它每年都会发布各种IT产业评测报告,分析未来技术发展,帮助客户进行市场分析、技术选择、投资决策。最近看到Gartner发布的云数据库魔力象限报告,这也…

安装包UI美化之路-nsNiuniuSkin安装包模板介绍

今天这篇文章,咱们不做功能讲解了,来介绍一下nsNiuniuSkin的几套安装包模板的UI效果和设计理念! 前言 经常有朋友会问,nsNiuniuSkin的几套模板都有些什么区别呀,我拿到模板后,如果要换成我们自己的UI方便…

Java on VS Code 2月更新|JUnit 5 并行测试与 Spring Boot 插件的过滤功能

作者:Nick Zhu - Senior Program Manager, Developer Division at Microsoft 排版:Alan Wang 大家好,欢迎来到我们的二月更新!在此博客中,我们将为您带来与 JUnit 5 并行测试相关的新功能以及用于 Spring Boot Dashboa…

【java基础】万字说明,一篇文章彻底搞懂java中的lambda表达式

文章目录lambda表达式是什么lambda表达式的语法函数式接口初次使用深入理解方法引用 :: 用法快速入门不同形式的::情况1 object::instanceMethod情况2 Class::instanceMethod情况3 Class::staticMethod对于 :: 的一些示例及其注意事项构造器引用变量作用域使用外部变量定义内部…

华为机试题:HJ96 表示数字(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

软件成分安全分析(SCA)能力的建设与演进

**前言 ** 随着 DevSecOps 概念的逐渐推广和云原生安全概念的快速普及,研发安全和操作环境安全现在已经变成了近两年行业非常热的词汇。在研发安全和应急响应的日常工作中,每天都会收到大量的安全风险信息,由于目前在系统研发的过程中&#…

【反序列化漏洞-02】PHP反序列化漏洞实验详解

为什么要序列化百度百科上关于序列化的定义是,将对象的状态信息转换为可以存储或传输的形式(字符串)的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区(非关系型键值对形式的数据库Redis,与数组类似)。以后,可以通过…

2023新版PMP考试有哪些变化?

对于2022年很多事情也都在发生,疫情也都没有完全结束,基金会已经开始通知下一场考试了,很多人也会担心新的考纲会不会给自己带来难度,其实这次六月份的考试很多人都内心已经知道了结果,所以这里也详细说一下新考纲的改…

大数据之Apache Doris_亚秒级响应_大数据处理分析_介绍_概述---大数据之Apache Doris工作笔记0001

可以看到这个Doris的介绍 MPP是大规模并行处理 这里的clickhouse ,greenplumn也是mpp,大规模并行处理数据库 应用场景 然后我们看一下doris的架构,可以看到,这里,左侧是数据来源,可以看到这个数据来源有 OLTP数据库,比如mysql,oracle等等这种数据库,还有就是enterprise appli…

Supporting Clustering with Contrastive Learning笔记

这篇文章使用了对比学习进行了聚类,一种端到端的离线聚类模型。 主要流程 Feature model 比较主流的句向量编码器SBERT。本文主要使用两个损失函数去微调SBERT的参数。使得SBERT的生成的特征表示具有以下两个特点: 簇间距离拉大(inter-cl…

并发编程(2)—Java 对象内存布局及 synchornized 偏向锁、轻量级锁、重量级锁介绍

一、Java 对象内存布局 1、对象内存布局 一个对象在 Java 底层布局(右半部分是数组连续的地址空间),如下图示: 总共有三部分总成: 1. 对象头:储对象的元数据,如哈希码、GC 分代年龄、锁状态…

Android中的OpenGL

前面有关 Android 音视频的渲染都是使用MediaCodec进行渲染,MediaCodec也有自己的弊端比如无法进行视频的编辑处理,而视频可以 OpenGL ES来进行渲染,可以很好进行处理,比如添加滤镜等,这里介绍下 Android 中 OpenGL&am…

GrowingIO是什么?如何将GrowingIO数据导入其他系统

GrowingIO是什么?GrowingIO 是一站式数据增长引擎整体方案服务商,以数据智能分析为核心,通过构建客户数据平台,打造增长营销闭环,帮助企业提升数据驱动能力,赋能商业决策、实现业务增长。GrowingIO 专注于零…

MyBatis-Plus框架解析?

简单介绍:MyBatis-Plus(简称 MP)(由苞米豆公司开源)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MP会内置集成部分SQL方法,可以直接…

【应用管理总结 Objective-C语言】

一、把应用管理这个案例,给大家总结一下: 1.今天,经过一天的努力,我们终于把这个九宫格应用管理案例的所有功能都实现了吧, 我们一起来,一边看效果,一边来总结, 2.大家先想一下,当我们实现这个效果,按照最终的那个版本来想一下,这个代码是什么样的一个思路, 1)…

QT打包的两种方式

QT打包的两种方式: 一个是QT5自带的windeployqt(不需要下载安装),它可以找到程序(exe)用到的所有库文件,并且都拷贝到exe程序的当前文件。此时打包的exe较小,需要和拷贝进来的文件放…