【问题标题】:Enabling HTTP/2 on the plain text connector在纯文本连接器上启用 HTTP/2
【发布时间】:2020-01-26 16:02:50
【问题描述】:

遵循启用 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 port 将只能在 特定客户端 上使用 HTTP/2(例如 curl) 使用升级机制或假设 HTTP/2。

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

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

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

谢谢!

【问题讨论】:

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

标签: java-8 jetty okhttp http2 apache-httpclient-5.x


【解决方案1】:

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

代码示例请参考

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/

【讨论】:

    【解决方案2】:

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

    您想查看this 文档。

    另请参阅 Jetty 项目如何将同一客户端用于 tests

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2020-09-29
      • 2015-03-08
      相关资源
      最近更新 更多