Java 8 在纯文本连接器上启用HTTP/2

Java 8 在纯文本连接器上启用HTTP/2,java-8,jetty,okhttp,http2,apache-httpclient-5.x,Java 8,Jetty,Okhttp,Http2,Apache Httpclient 5.x,遵循启用HTTP/2的Jetty文档 我一直走到下一步 2015-06-17 14:16:12.549:信息:oejs.ServerConnector:main:已启动 ServerConnector@6f32cd1e{HTTP/1.1[HTTP/1.1,h2c]}{0.0.0.0:8080} 从文件来看 目前没有主流浏览器支持纯文本HTTP/2,因此8080 端口只能将HTTP/2与特定的客户端一起使用(例如curl) 使用升级机制或假定为HTTP/2 文档中提到了“特定客户机”,但是我可以使

遵循启用HTTP/2的Jetty文档

我一直走到下一步

2015-06-17 14:16:12.549:信息:oejs.ServerConnector:main:已启动 ServerConnector@6f32cd1e{HTTP/1.1[HTTP/1.1,h2c]}{0.0.0.0:8080}

从文件来看

目前没有主流浏览器支持纯文本HTTP/2,因此8080 端口只能将HTTP/2与特定的客户端一起使用(例如curl) 使用升级机制或假定为HTTP/2

文档中提到了“特定客户机”,但是我可以使用什么客户机来解决这个问题呢?我尝试了
okHttp
apache-httpclient
okHttp
不支持升级机制(AFAIK,如果不是这样就好了),而
apache-httpclient
不支持
h2

我基本上需要从我的程序向这个端点发出GET/POST请求(显然,使用HTTP/2)

简单地说,请推荐任何支持非加密http/2(h2c)的Java客户端


谢谢

Jetty项目有一个HTTP客户端库,可以用作HTTP客户端,并支持HTTP/2,包括明文和加密

您需要查看文档


另请参见Jetty项目如何使用相同的客户端。

Apache HttpCore和HttpClient 5.0支持
h2
以及
h2c
,但目前不支持
http/1.1
h2c
升级机制。我不确定他们是否会这样做,因为目前还不清楚这种升级机制到底有多有用

有关代码示例,请参阅

有关HttpClient 4.5.x到HttpClient 5.0的升级指南,请参阅:


您也需要在这个端口上支持HTTP/1吗?是的……要支持使用相同端点的其他服务,您的客户端中支持非加密HTTP/2的功能称为
h2c
,请查找该功能。@JoakimErdfelt我找不到这样的Java客户端。这就是这个问题的目的。您以更好的方式解释了我的问题>apache httpClient不支持h2:此语句不正确。