diff options
author | adamw <adam@warski.org> | 2017-09-22 16:26:56 +0200 |
---|---|---|
committer | adamw <adam@warski.org> | 2017-09-22 16:26:56 +0200 |
commit | 77dfc7bfa577ab72d2325efcad813f6a165a4c36 (patch) | |
tree | c387a9fdb268172939620230e0f75e96f4a893d6 /core | |
parent | 70b859bc8fe67dd9234109fe5176c0f9ead564bb (diff) | |
download | sttp-77dfc7bfa577ab72d2325efcad813f6a165a4c36.tar.gz sttp-77dfc7bfa577ab72d2325efcad813f6a165a4c36.tar.bz2 sttp-77dfc7bfa577ab72d2325efcad813f6a165a4c36.zip |
#11, #35: SSL docs, more options for customizing delegated client calls
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala b/core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala index 2dbb13d..62ef2bc 100644 --- a/core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala +++ b/core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala @@ -13,7 +13,9 @@ import scala.io.Source import scala.collection.JavaConverters._ import scala.concurrent.duration.{Duration, FiniteDuration} -class HttpURLConnectionBackend private (connectionTimeout: FiniteDuration) +class HttpURLConnectionBackend private ( + connectionTimeout: FiniteDuration, + customizeConnection: HttpURLConnection => Unit) extends SttpBackend[Id, Nothing] { override def send[T](r: Request[T, Nothing]): Response[T] = { val c = @@ -27,6 +29,8 @@ class HttpURLConnectionBackend private (connectionTimeout: FiniteDuration) // redirects are handled by FollowRedirectsBackend c.setInstanceFollowRedirects(false) + customizeConnection(c) + if (r.body != NoBody) { c.setDoOutput(true) // we need to take care to: @@ -258,9 +262,11 @@ class HttpURLConnectionBackend private (connectionTimeout: FiniteDuration) object HttpURLConnectionBackend { - def apply( - connectionTimeout: FiniteDuration = SttpBackend.DefaultConnectionTimeout) - : SttpBackend[Id, Nothing] = + def apply(connectionTimeout: FiniteDuration = + SttpBackend.DefaultConnectionTimeout, + customizeConnection: HttpURLConnection => Unit = { _ => + () + }): SttpBackend[Id, Nothing] = new FollowRedirectsBackend[Id, Nothing]( - new HttpURLConnectionBackend(connectionTimeout)) + new HttpURLConnectionBackend(connectionTimeout, customizeConnection)) } |