代码之家  ›  专栏  ›  技术社区  ›  Vitaly Goryuchkin

如何在play framework(scala)中发送HTTP 2.0请求

  •  2
  • Vitaly Goryuchkin  · 技术社区  · 7 年前

    在play framework(2.6.5版scala)下运行的后端必须与苹果推送通知服务(APNs)通信。APNs需要使用HTTP/2,所以我试图找到任何实现这种通信的方法,但令我惊讶的是,我没有找到任何支持HTTP v 2.0的HTTP scala客户端。 谢谢

    2 回复  |  直到 7 年前
        1
  •  1
  •   Artem    7 年前

    2.6之前版本的Play Framework不支持HTTP 2.0,但Play Framework 2.6基于Akka HTTP,具有 experimental support 对于HTTP 2.0。此功能被标记为“实验性”,因为API在未来可能会更改,并且尚未在野外进行彻底测试。

    PlayAkkaHttp2Support 插件。您可以在enablePlugins中执行此操作:

    lazy val root = (project in file("."))
      .enablePlugins(PlayScala, PlayAkkaHttp2Support)
    

    如果您考虑替代方案,请查看:

    1. Jetty
    2. Netty 还支持HTTP 2.0

    list HTTP 2.0的已知实现。

        2
  •  1
  •   László van den Hoek    7 年前

    在Akka HTTP中,它是Play的基础!框架,HTTP/2支持在服务器端是实验性的,但据我所知,在客户端还不可用。工作正在进行中,正在跟踪 Github . 除非你倾向于自己编写HTTP/2客户端支持,并有选择地将其捐赠给项目(这可能是一种非常令人满意的体验),否则我担心,现在可能需要跳出框架。

    如果您能够使用Java 9(嘿,这已经是两天的黄金了!),您可以考虑它的HTTP/2客户端。

    http://vertx.io/docs/vertx-web-client/scala/ -我从来没有在生产中使用过它,所以。。。

    编辑: sttp 使用支持HTTP/2的OkHttp后端。