aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala')
-rw-r--r--core/src/main/scala/com/softwaremill/sttp/HttpURLConnectionBackend.scala16
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))
}