aboutsummaryrefslogtreecommitdiff
path: root/okhttp-client-handler/src
diff options
context:
space:
mode:
Diffstat (limited to 'okhttp-client-handler/src')
-rw-r--r--okhttp-client-handler/src/main/scala/com/softwaremill/sttp/okhttp/OkHttpClientHandler.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/okhttp-client-handler/src/main/scala/com/softwaremill/sttp/okhttp/OkHttpClientHandler.scala b/okhttp-client-handler/src/main/scala/com/softwaremill/sttp/okhttp/OkHttpClientHandler.scala
index f57487f..79ca98b 100644
--- a/okhttp-client-handler/src/main/scala/com/softwaremill/sttp/okhttp/OkHttpClientHandler.scala
+++ b/okhttp-client-handler/src/main/scala/com/softwaremill/sttp/okhttp/OkHttpClientHandler.scala
@@ -89,6 +89,8 @@ abstract class OkHttpClientHandler[R[_], S](client: OkHttpClient)
case ResponseAsByteArray => Try(res.body().bytes())
case ResponseAsStream() =>
Failure(new IllegalStateException("Streaming isn't supported"))
+ case ResponseAsFile(file, overwrite) =>
+ Try(ResponseAs.saveFile(file, res.body().byteStream(), overwrite))
}
}
}
@@ -125,7 +127,8 @@ class OkHttpFutureClientHandler private (client: OkHttpClient)(
promise.failure(e)
override def onResponse(call: Call, response: OkHttpResponse): Unit =
- promise.success(readResponse(response, r.responseAs))
+ try promise.success(readResponse(response, r.responseAs))
+ catch { case e: Exception => promise.failure(e) }
})
responseMonad.flatten(promise.future)