scala - 返回二进制流作为对请求 Play Framework 的响应

标签 scala playframework

我在从 Play Framework 返回二进制流时遇到问题。根据文档,如果框架发现 Controller 方法返回 Stream 或 File,它应该自动返回二进制输出。好吧,我的方法返回一个 Stream[Byte],但框架返回“Stream(100, ?)”而不是二进制流。

我做错了什么? 感谢您的回答, 托马斯·赫尔曼


编辑

好吧,以防万一将来有人需要它,看来我以某种方式将其整合在一起。我只是从 Stream 构建一个字符串并将其返回。它似乎工作正常,但我确信有更好的解决方案。

例子:

val builder = new StringBuilder()
builder.clear
stream foreach { x=> builder.append(x.toChar)}
val res = builder.toString

res 是你的 Controller 方法应该返回的内容

最佳答案

您可能已经得到了您所需要的。 Stream(100, ?) 是一个 Stream,其第一个值为 100,其余值尚未计算。要完整地查看它,请尝试打印 stream mkString ("Stream(", ", ", ")")

关于scala - 返回二进制流作为对请求 Play Framework 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908645/

相关文章:

eclipse - Spark 应用程序在 Eclipse 中使用 Scala 和 SBT

java - 在 Scala 中使用 java 迭代器

templates - 将列表映射到 HTML 并将结果插入 Play 2.0 模板中

java - 如何仅在开发模式下以 HTTPS 运行 Play 框架?

java - Hibernate 和 Java 中的数据类子类化

java - 如何以编程方式在执行程序节点中查找 Spark 版本?

string - Scala 将字符串转换为 StringOps

java - 超时时停止 Actor 消息处理

hibernate - Play 框架中数据库级别的国际化

javascript - ELSE/IF 语句无法正常工作