aboutsummaryrefslogtreecommitdiff
path: root/okhttp-client-handler/src/main/scala/com
diff options
context:
space:
mode:
authorPiotr Buda <piotr.buda@softwaremill.com>2017-07-31 11:59:08 +0200
committerPiotr Buda <piotr.buda@softwaremill.com>2017-08-04 16:37:48 +0200
commite6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf (patch)
treec3fda860423c4154bdc73f26f67fe332ce4b1cc6 /okhttp-client-handler/src/main/scala/com
parent489e591672257d19b3a07198d4d6c9e21be601c7 (diff)
downloadsttp-e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf.tar.gz
sttp-e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf.tar.bz2
sttp-e6f0ac0289ad3685e2af5dfc17ee79c3c1170bdf.zip
#7: Add asFile and asPath responses
Diffstat (limited to 'okhttp-client-handler/src/main/scala/com')
-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)