我在我的喷雾罐服务器中使用以下路径(使用喷雾1.2):
path("my"/"path"){
get{
complete{
val buf:Array[Byte] = functionReturningArrayofByte()
println(buf.length)
buf
}
}
}
Run Code Online (Sandbox Code Playgroud)
缓冲区的长度(以及上面代码打印的内容)是2,263,503字节.但是,my/path从Web浏览器访问时,它会下载长度为10,528,063字节的文件.
我认为spray将内容类型设置为application/octet-stream,并在完成时自动设置内容长度Array[Byte].我没有意识到我可能做错了什么.
编辑
我运行了一个小测试,并看到字节数组输出为String.因此,例如,如果我有两个字节,例如0xFF和0x01,那么输出而不仅仅是两个字节将是字符串[ 255, 1 ].我只是不知道如何输出原始内容而不是它的字符串表示.
包装buf为HttpData解决了这个问题:
path("my"/"path"){
get{
complete{
val buf:Array[Byte] = functionReturningArrayofByte()
HttpData(buf)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |