diff options
Diffstat (limited to 'akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala')
-rw-r--r-- | akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala b/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala index 5691d3c..35f8f81 100644 --- a/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala +++ b/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala @@ -41,8 +41,14 @@ class AkkaHttpHandler private (actorSystem: ActorSystem, .flatMap(Http().singleRequest(_)) .flatMap { hr => val code = hr.status.intValue() - bodyFromAkka(r.response, decodeAkkaResponse(hr)) - .map(Response(_, code, headersFromAkka(hr))) + + val body = if (codeIsSuccess(code)) { + bodyFromAkka(r.response, decodeAkkaResponse(hr)).map(Right(_)) + } else { + bodyFromAkka(asString, decodeAkkaResponse(hr)).map(Left(_)) + } + + body.map(Response(_, code, headersFromAkka(hr))) } } |