scala - 如何将 Bytestring 转换为 Source[Bytestring, Any]

标签 scala akka-stream akka-http reactive-kafka

我从 Kafka Reactive Streams 消费者处接收到一个字节字符串文件;我想用这个 Bytestring 作为实体 HttpEntity.Default 构造一个 akka-http 请求。 HttpEntity.Default 需要 Source[Bytestring, Any] 作为其参数之一。

连接两者的最佳方式是什么?

最佳答案

您可以使用Source.single :

HttpEntity.Default(
  ContentTypes.`application/octet-stream`,
  byteString.size,
  Source.single(byteString)
)

也就是说,您真的确定您确实需要 HttpEntity.Default 吗?您可以使用 HttpEntity.apply(ContentType, ByteString)直接从 ByteString 构造实体的方法:

HttpEntity(ContentTypes.`application/octet-stream`, byteString)

它返回 HttpEntity.Strict 的实例而不是 HttpEntity.Default,但 Strict 可以很好地用于发送 HTTP 请求。

关于scala - 如何将 Bytestring 转换为 Source[Bytestring, Any],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39765236/

相关文章:

scala - 如何发布或订阅物化的 Akka Stream 流图?

scala - akka-stream + akka-http 生命周期

scala - Akka Streams - Source.unfoldAsync 的背压

scala - 自动更新 sbt 依赖到最新版本

scala - 如何根据相互遵循的不同条件构建 Seq

database - 与 Play Framework 一起使用时的 Scala ActiveRecord 性能问题

java - 使用 Scala Apache Spark 合并 RDD

streaming - 具有默认调度程序的响应式(Reactive)卡夫卡?

akka - 使用 Akka HTTP 上传多部分表单数据

docker - 在docker中运行的akka​​-http应用程序