diff options
author | Piotr Buda <piotr.buda@softwaremill.com> | 2017-07-31 11:59:08 +0200 |
---|---|---|
committer | Piotr Buda <piotr.buda@softwaremill.com> | 2017-08-04 16:37:48 +0200 |
commit | e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf (patch) | |
tree | c3fda860423c4154bdc73f26f67fe332ce4b1cc6 /okhttp-client-handler | |
parent | 489e591672257d19b3a07198d4d6c9e21be601c7 (diff) | |
download | sttp-e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf.tar.gz sttp-e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf.tar.bz2 sttp-e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf.zip |
#7: Add asFile and asPath responses
Diffstat (limited to 'okhttp-client-handler')
-rw-r--r-- | okhttp-client-handler/src/main/scala/com/softwaremill/sttp/okhttp/OkHttpClientHandler.scala | 5 |
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) |