HTTP读取和重写字节

时间:2016-06-27 15:56:38

标签: scala http encoding playframework-2.0

我通过执行命令行程序获得了一大堆二进制数据。这个blob可以由同一个程序解码。

我想在HTTP响应中发送这个二进制数据。为此,我使用"application/octet-stream" mime-type(我也尝试过" text / plain")。但是当客户端在另一端获取数据时,它就不再可读了。格式已经发生了某种变化。

这是我的Scala代码(但我认为这是一个通用的问题):

val command = s"samtools view -h $testbam $region"
val res: String = command.!!    // Gets the stdout as string

Result(
  header = ResponseHeader(200, Map.empty),
  body = HttpEntity.Strict(ByteString(res), Some("application/octet-stream"))
)

可以正确解码在命令行上运行的相同命令。但是" curl"的结果在这里,虽然它确实返回了一堆不可读的符号,但无法解码。

以可读(未压缩)的形式发送相同的数据可以正常运行而不会丢失内容或格式。

我错过了什么样的角色转换?要指定的任何编码?

编辑:播放2.5.0

0 个答案:

没有答案