Java 11:新的HTTP客户端API

在Java 11中,已将最初在Java 9中引入的孵化HTTP客户端API进行了标准化。 它使连接URL,管理请求参数,cookie和会话更加容易,甚至支持异步请求和websocket。

回顾一下,这是使用传统的URLConnection方法从URL读取的方式:

var url = new URL("http://www.google.com");
var conn = url.openConnection();
try (var in = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {in.lines().forEach(System.out::println);
}

这里是您可以如何使用HttpClient

var httpClient = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("http://www.google.com")).build();
var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

HTTP客户端API还通过sendAsync方法支持异步请求,该方法返回CompletableFuture ,如下所示。 这意味着执行请求的线程不必等待I / O完成,并且可以用于运行其他任务。

var httpClient = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("http://www.google.com")).build();
httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body).thenAccept(System.out::println);

从文件发出包含JSON的POST请求也非常容易:

var httpClient = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("http://www.google.com")).header("Content-Type", "application/json").POST(HttpRequest.BodyPublishers.ofFile(Paths.get("data.json"))).build();

翻译自: https://www.javacodegeeks.com/2018/12/java-11-new-http-client-api.html

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

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

相关文章

按主键更新另一个表oracle,SQL根据ID匹配从一个表更新到另一个表

我相信一个连接的UPDATE FROM将有助于:MS SQLUPDATE Sales_Import SET Sales_Import.AccountNumber RAN.AccountNumber FROM Sales_Import SI INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID RAN.LeadID;MySQL和MariaDBUPDATE Sales_Import SI, RetrieveAcco…

【渝粤教育】电大中专市场营销管理30分钟交卷作业 题库

1.下列关于产品的叙述错误的是( ) A.它实际上是向人传送服务的工具 B.产品是指能够满足人类某种需要或欲望的东西 C.通常可分为实体产品和无形产品 D.无形产品主要指产品信息 错误 正确答案:左边查询 学生答案:C 2.企业目标的主要…

mockito_Eclipse的Mockito模板

mockito有时候,我想念树林里的树木-那是一段令人不安的长时间。 我最近才再次意识到这一点,在无数次中键入了一个更详细的模仿表达式之一。 有问题的语句是一个doAnswer(Answer)构造,使用涉及到的静态导入和泛型代码进行编码总是很麻烦。 尽…

【渝粤教育】电大中专建筑力学作业 题库

1.当变形在所研究的问题中成为主要因素时一般就不能再把物体看作是刚体了。 A.错误 B.正确 正确 正确答案:左边查询 学生答案:B 2.外效应使物体的形状发生变化。 A.错误 B.正确 正确 正确答案:左边查询 学生答案:A 3.约束必然对被…

linux系统运行powerbi,使用 Power BI 服务 - Power BI | Microsoft Docs

快速入门 - 使用 Power BI 服Quickstart - Getting around in Power BI service10/12/2020本文内容备注Power BI 正在转换为新外观,文档中的某些图像可能与服务中显示的图像不匹配。Power BI is moving to a new look, and some images in the documentation may no…

【渝粤教育】电大中专微生物与寄生虫基础作业 题库

1.属于真核型微生物的是()。 A.衣原体 B.放线菌 C.真菌 D.病毒 E.支原体 错误 正确答案:左边查询 学生答案:B 2.下列哪一个特点不是微生物的共有特点() A.结构简单 B.肉眼不直接可见 C.需要借助显微镜观察 …

ue 编写linux脚本,UltraEdit23 sh文件 (shell脚本)着色

网上有UltraEdit早期版本的添加方法;但是这新版本有点不同;方法如下:安装后,到AppData\Roaming\IDMComp\UltraEdit\wordfiles 目录下添加UnixShell.uew;文件内容和网上的一样:/L20"UNIX Shell Scripts…

JMetro版本4.8已发布

再一次问好! JMetro Java 4.8版JavaFX主题刚刚发布。 我们即将接近下一个主要版本的版本5.0。 这是已经过彻底改造的旧样式: 日期选择器 树视图 以及经过调整或更改了CSS结构的旧版本: 表格检视 列表显示 组合框 评级控制 4.8版详细…

【渝粤教育】电大中专新媒体营销实务 (3)作业 题库

1.( )对新媒体的定义为:“以数字信息技术为基础,以互动传播为特点,具有创新形态的媒体。” A.新传媒产业联盟秘书长王斌 B.华纳兄弟总裁施瓦茨威格 C.联合国教科文组织 正确 正确答案:左边查询 学生答案&am…

【渝粤教育】电大中专测量学作业 题库

1.测量学是研究地球的形状和大小以及确定地面点()位置的科学。 A.平面 B.空间 C.曲面 D.高程 错误 正确答案:左边查询 学生答案:A 2.测量学中的水准面是一个()。 A.斜平面 B.水平面 C.竖直面 D.曲面 正确 正…

【渝粤教育】电大中专电商运营实操 (14)作业 题库

1.电子商务最重要的是“商务”,而网站只不过是电子商务的后台支撑。 ( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:未作答 2.网上购物仅仅是电子商务的一小部分,而完整的电子商务过程是一切利用现代…

linux view查看日志命令,linux查看日志文件内容命令tail、cat、tac、head、echo、vi

linux查看日志文件内容命令tail、cat、tac、head、echotail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C,---------------------------linux 如何显示一个文件的某几行(中间几行)从第3000行开始,显示1000行。即显示3000~3999行cat fi…

【渝粤教育】电大中专电商运营实操作业 题库

1.电子商务最重要的是“商务”,而网站只不过是电子商务的后台支撑。 ( ) A.错误 B.正确 错误 正确答案:左边查询 学生答案:未作答 2.网上购物仅仅是电子商务的一小部分,而完整的电子商务过程是一切利用现代…

【渝粤教育】电大中专电子商务网站建设与维护 (21)作业 题库

1.阿里巴巴是于1999年创立的( )的网上贸易市场平台。 A.零售商对消费者 B.企业对消费者 C.企业对企业 D.企业对零售商 错误 正确答案:左边查询 学生答案:未作答 2.阿里巴巴网站的不足不包括( ) A.“诚信通”…

linux 下对u盘分区吗,linux对中毒u盘分区和格式化

linux对中毒u盘分区和格式化发布时间:2008-08-29 10:36:49来源:红联作者:aibss原创人:a3563u盘情况是4G,分2个区,分别为2G。其中一个分区在windows下“我的电脑”里看不见,但在磁盘管理里能看见,但没有盘符&#xff0c…

Java 11快多少?

尽管大多数开发人员仍然使用Java 8 ,但Java 11还是在不久前发布的。 让我们看看其中哪个对OptaPlanner更快。 找出答案的最佳方法当然是运行OptaPlanner基准测试。 本文是我们针对Java 8的类似文章的后续文章 。 基准方法 为了运行基准测试,我们使用了&…

linux5.9安装教程,Linux内核5.9的最重要功能及安装方法

原标题:Linux内核5.9的最重要功能及安装方法Linux内核5.9带来了吸引数据中心管理员的诸多性能提升。本文作者着重介绍了改进之处,并介绍了如何安装主线内核。与5.8一样,Linux内核5.9确实没有任何改变游戏规则的功能,至少对普通用户…

远程桌面服务怎么测试_快速的远程服务测试

远程桌面服务怎么测试测试与远程服务交互的代码通常非常困难。 有很多折衷因素会影响您可以编写哪些测试以及要编写的测试数量。 在大多数情况下,您对从服务中获取的数据的控制为零,这使得断言至少很难说。 不久前,我使用VCR库针对远程服务编…

linux 编译src.rpm,CentOS6.5下编译src.rpm包的内核

CentOS6.5原生内核版本是Linux 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux在网上下载对应版本的src.rpm包:kernel-2.6.32-431.el6.src.rpmhttp://rpm.pbone.net/index.php3/stat/4/idpl/24668468/dir/scientific_l…

Apache Payara:让我们加密

不久前,我写了一个小教程 ,介绍如何生成“让我们加密SSL”证书并将其安装在Glassfish Java EE平台上。 这个技巧对我来说是一个奇迹,但是每三个月必须手动更新和重新安装证书变得很烦人。 我做了一些研究,并且与第一个教程一样&a…