java - Java10中的HttpRequest.BodyProcessor在哪里
问题描述
我目前正在通过这个学习 Java9~10 中的 HTTP/2 客户端。
Java 9 确实有HttpRequest.BodyProcessor
接口,而 Java 10 没有HttpRequest.BodyProcessor
,但它确实有HttpRequest.BodyPublisher
。两个接口是相似的。
为什么Java更改接口的名称?我认为向后兼容性被忽略了。
解决方案
它HttpClient
是 Java 9 和 10 的孵化器模块的一部分。因此,人们看到的更多的是原型作品,虽然理想情况下不应该有太大变化,但不能保证不变。
孵化功能是一个非平凡的 API,它正在开发中以最终包含在 Java SE 平台或 JDK 中,但尚未得到充分证明。
如果你想使用标准模块,你可以在 Java 11 中使用它,它被命名为java.net.http
. [注意它被标记为自 Java 11 而不是 9 或 10 ]
HttpClient
如果您已经在 Java9/10 中使用Java11 中未找到的 jdk.incubator.httpclient 模块,则可以帮助您迁移 Java 11 中的用法。
稍微偏离主题BodyPublisher
:如果您可以比较两个 JDK 中的源代码,您会发现与之前的状态相比,Java 10 和 Java 11 中的方法都有更新
推荐阅读
- angularjs - AngularJS $rootScope.$broadcast
- angular - 如何预选自动完成?
- performance - 一个程序如何同时为多个用户提供服务?
- javascript - angularjs 函数如何使用 angularjs 指令返回 html 代码
- php - LIBSODIUM 解密 mysql 查询中的数据,就像使用 AES_DECRYPT 一样
- java - 如何在 Java Spring 应用程序中接受 GET/POST 请求之前预先评估条件?
- javascript - Angular2 + - 作为变量传递时找不到模块 - 测试
- python - GridFS.put() 和 GridFSBucket.upload_from_stream() 之间的区别
- go - 无法通过跳过证书从 https 获取 xml
- android - 使用耳机麦克风而不是设备麦克风