1

在启用 HTTP/2 的 Jetty 文档之后,

我到达了以下步骤,

2015-06-17 14:16:12.549:INFO: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。

文档提到了“特定客户”,但我可以使用什么客户来克服这个问题?我试过okHttpand apache-httpclientokHttp不支持升级机制(AFAIK,如果不是这样就好了),并且apache-httpClient不支持h2.

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

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

谢谢!

4

2 回答 2

1

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

代码示例请参考

http://hc.apache.org/httpcomponents-client-5.0.x/examples-async.html

HttpClient 4.5.x 到 HttpClient 5.0 升级指南请参考:

https://ok2c.github.io/httpclient-migration-guide/

于 2019-09-26T14:07:51.993 回答
0

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

您想查看文档。

另请参阅 Jetty 项目如何使用相同的客户端进行测试

于 2019-09-26T13:42:31.320 回答