aboutsummaryrefslogtreecommitdiff
path: root/async-http-client-handler/monix/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'async-http-client-handler/monix/src/main')
-rw-r--r--async-http-client-handler/monix/src/main/scala/com/softwaremill/sttp/asynchttpclient/monix/AsyncHttpClientMonixHandler.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/async-http-client-handler/monix/src/main/scala/com/softwaremill/sttp/asynchttpclient/monix/AsyncHttpClientMonixHandler.scala b/async-http-client-handler/monix/src/main/scala/com/softwaremill/sttp/asynchttpclient/monix/AsyncHttpClientMonixHandler.scala
index 7f01f0c..1ef3973 100644
--- a/async-http-client-handler/monix/src/main/scala/com/softwaremill/sttp/asynchttpclient/monix/AsyncHttpClientMonixHandler.scala
+++ b/async-http-client-handler/monix/src/main/scala/com/softwaremill/sttp/asynchttpclient/monix/AsyncHttpClientMonixHandler.scala
@@ -2,7 +2,7 @@ package com.softwaremill.sttp.asynchttpclient.monix
import java.nio.ByteBuffer
-import com.softwaremill.sttp.{MonadAsyncError, SttpHandler}
+import com.softwaremill.sttp.{MonadAsyncError, SttpHandler, Utf8, concatByteBuffers}
import com.softwaremill.sttp.asynchttpclient.AsyncHttpClientHandler
import monix.eval.Task
import monix.execution.{Cancelable, Scheduler}
@@ -31,6 +31,16 @@ class AsyncHttpClientMonixHandler private (
override protected def publisherToStreamBody(
p: Publisher[ByteBuffer]): Observable[ByteBuffer] =
Observable.fromReactivePublisher(p)
+
+ override protected def publisherToString(
+ p: Publisher[ByteBuffer]): Task[String] = {
+
+ val bytes = Observable
+ .fromReactivePublisher(p)
+ .foldLeftL(ByteBuffer.allocate(0))(concatByteBuffers)
+
+ bytes.map(bb => new String(bb.array(), Utf8))
+ }
}
object AsyncHttpClientMonixHandler {