2
我收到来自Kafka反应流消费者的Bytestring文件;我想用这个Bytestring构造一个akka-http请求作为实体HttpEntity.Default。 HttpEntity.Default需要Source [Bytestring,Any]作为其参数之一。如何将字节串转换为源[字节串,任意]
什么是连接两者的最佳方式?
我收到来自Kafka反应流消费者的Bytestring文件;我想用这个Bytestring构造一个akka-http请求作为实体HttpEntity.Default。 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请求就好了。
谢谢,这肯定会奏效。有没有我可以从Kafka客户端提取源代码[Bytestring],以便我可以将来自Kafka的流链接到Akka-http:因为现在我在内存中加载了整个Bytestring,然后执行一个akka-http请求? – Rabzu
对不起,我不知道,因为我从未使用过卡夫卡。但我怀疑这是可能的,至少,我看到了一些非常喜欢它的东西[in reactive-kafka](http://doc.akka.io/docs/akka-stream-kafka/current/consumer.html#connecting-producer消费者)文档。你可能应该询问另一个问题。 –
因为文件大小已知,所以使用HttpEntity.Default – Rabzu