我在从 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/