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