aboutsummaryrefslogtreecommitdiff
path: root/async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala
diff options
context:
space:
mode:
Diffstat (limited to 'async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala')
-rw-r--r--async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala11
1 files changed, 10 insertions, 1 deletions
diff --git a/async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala b/async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala
index f7ed00c..dc30925 100644
--- a/async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala
+++ b/async-http-client-handler/fs2/src/main/scala/com/softwaremill/sttp/asynchttpclient/fs2/AsyncHttpClientFs2Handler.scala
@@ -4,7 +4,7 @@ import java.nio.ByteBuffer
import cats.effect._
import com.softwaremill.sttp.asynchttpclient.AsyncHttpClientHandler
-import com.softwaremill.sttp.{MonadAsyncError, SttpHandler}
+import com.softwaremill.sttp.{MonadAsyncError, SttpHandler, Utf8, concatByteBuffers}
import fs2._
import fs2.interop.reactivestreams._
import org.asynchttpclient.{
@@ -33,6 +33,15 @@ class AsyncHttpClientFs2Handler[F[_]: Effect] private (
override protected def publisherToStreamBody(
p: Publisher[ByteBuffer]): Stream[F, ByteBuffer] =
p.toStream[F]
+
+ override protected def publisherToString(
+ p: Publisher[ByteBuffer]): F[String] = {
+ val bytes = p
+ .toStream[F]
+ .runFold(ByteBuffer.allocate(0))(concatByteBuffers)
+
+ implicitly[Effect[F]].map(bytes)(bb => new String(bb.array(), Utf8))
+ }
}
object AsyncHttpClientFs2Handler {