diff options
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.scala | 11 |
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 { |