Da Sie ein materializer
aus dem Akka Kontext erstellt haben, und haben ein Source
die ByteString
Objekte mysource
genannt erzeugt:
Http httpContext =
Http.get(context().system());
Source<ByteString, NotUsed> chunked =
mysource.map(str -> ByteString(str.concat("\n")))
.concat(Source.single(ByteString.empty()));
HttpRequest post = HttpRequest.POST("http://some-server/address")
.withEntity(HttpEntities.createChunked(ContentTypes.APPLICATION_OCTET_STREAM, chunked))
.withProtocol(HttpProtoclas.HTTP_1_1);
CompletionStage<HttpResponse> result =
httpContext.singleRequest(post, materializer);
Beachten Sie, dass wir ein leeres ByteString
Quellobjekt auf den ursprünglichen Source
um verketten zu signalisieren Sie das Ende des Chunked Stream.
Wenn Sie dies innerhalb eines Schauspielers ausgeben, verwenden Sie am besten eine pipe()
, um die endgültige Anfrage zu senden.