【问题标题】:Streaming an http response within a composed action in Play! Framework 2.1在 Play 中的组合动作中流式传输 http 响应!框架 2.1
【发布时间】:2013-04-30 09:21:01
【问题描述】:

我正在创建一个包含其他操作的身份验证操作,使用 Play Zentasks 示例应用程序作为模板。这需要能够做的一件事是在某些情况下访问 Web 服务,以便检索用户的详细信息。我想以非阻塞方式执行此操作,但我不想将未来传递回我正在包装的操作。

我能想到的唯一方法是使用 Enumerator.fromStream() 和从 URL 对象中提取的 InputStream。我猜这不是最好的方法,因为它似乎是重复的工作(考虑到 ws 对象)。然而,异步 ws api(和底层的 asynchttpclient)为所有内容返回一个 Future。我想以前没有人解决过这个问题并且可以为我指出另一个方向吗?有什么我想念的吗?另外,像我建议的那样使用 Enumerator.fromStream() 绝对不会阻塞吗?

提前致谢,

这样

【问题讨论】:

    标签: http scala playframework streaming playframework-2.1


    【解决方案1】:

    您可以使用异步 WS api。当它返回一个未来时,您可以调用 map ,并将值传递给您正在包装的操作。现在你有一个包含你的包装操作结果的未来。将其转换为 AsyncResult 或将整个内容包装在 Async{} 块中,它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多