Java10 中的 HttpRequest.BodyProcessor 在哪里

Where is HttpRequest.BodyProcessor in Java10

我目前正在 HTTP/2 客户 Java9~10 至 this

Java 9 确实有 HttpRequest.BodyProcessor 接口,而 Java 10 没有 HttpRequest.BodyProcessor,但它确实有 HttpRequest.BodyPublisher。两个界面都很相似。

为什么 Java 更改接口的名称? 我认为向后兼容性被忽略了。

HttpClient has been a part of an incubator module 与 Java 9 和 10。所以人们看到的是更多的原型作品,虽然理想情况下不应有太大变化,但不能保证相同。

来自孵化器JEP#Incubator Modules:

An incubating feature is an API of non-trivial size that is under development for eventual inclusion in the Java SE Platform, or the JDK, but is not yet sufficiently proven.


如果你想使用标准模块你可以在Java11中使用它,它在命名为 java.net.http。 [注意它被标记为自 Java 11 而不是 9 或 10]

如果您已经在 Java9/10.

中使用

可以帮助您迁移 Java 11 中 HttpClient 的使用

有点跑题:如果你能比较一下JDK中的源码,你会发现与之前的状态相比,BodyPublisher 中的方法有所更新,包括 Java 10 和 Java 11.