2016-09-29 5 views
2

私はKafka Reactive StreamsのコンシューマからBytestringとしてファイルを受信して​​います。私はエンティティHttpEntity.DefaultとしてこのBytestringでakka-httpリクエストを構築したいと思います。 HttpEntity.Defaultは、ソース[Bytestring、Any]をそのパラメータの1つとして必要とします。Bytestringをソースに変換する方法[Bytestring、Any]

2つを接続するにはどうすればよいですか?

答えて

2

あなたはSource.singleを使用することができます。

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

言った、あなたは正確にHttpEntity.Defaultを必要と本当によろしいですか?あなたはByteStringから直接実体を構築するためにHttpEntity.apply(ContentType, ByteString)メソッドを使用することができます。

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

それはHttpEntity.Strict代わりのHttpEntity.Defaultのインスタンスを返しますが、StrictがうまくHTTPリクエストを送信するために使用することができます。

+0

ありがとう、これは間違いなく動作します。私はKafkaのコンシューマークライアントからソース[Bytestring]を取り出すことができるので、KafkaからAkka-httpへのストリームをチェーンできるようになりました:今、Bytestring全体をメモリにロードしてからakka-http要求を行うためですか? – Rabzu

+0

私はカフカを使ったことがないので、私は知らない。しかし、私はそれが可能であると思う、少なくとも、私はそれが非常に好きなものを見る[反応カフカ](http://doc.akka.io/docs/akka-stream-kafka/current/consumer.html#connecting-producerコンシューマ向けドキュメント)。おそらく別の質問をする必要があります。 –

+0

ファイルサイズがわかっているため、HttpEntity.Defaultを使用しています – Rabzu

関連する問題