diff options
author | Piotr Gabara <piotr.gabara@hotmail.com> | 2017-09-06 19:09:16 +0200 |
---|---|---|
committer | Piotr Gabara <piotr.gabara@hotmail.com> | 2017-09-06 19:20:17 +0200 |
commit | 6874e55a316e4fe8a650efd3a849814a91bba8cb (patch) | |
tree | e22fa85abb61805b2d8f363b0e55eac1d60a94f3 /akka-http-handler | |
parent | e82346820797bb2d80d0fada7f17c5880871edce (diff) | |
download | sttp-6874e55a316e4fe8a650efd3a849814a91bba8cb.tar.gz sttp-6874e55a316e4fe8a650efd3a849814a91bba8cb.tar.bz2 sttp-6874e55a316e4fe8a650efd3a849814a91bba8cb.zip |
Post review changes
Diffstat (limited to 'akka-http-handler')
-rw-r--r-- | akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala b/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala index da538a1..c6b0a2c 100644 --- a/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala +++ b/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala @@ -37,21 +37,22 @@ class AkkaHttpHandler private (actorSystem: ActorSystem, private implicit val as: ActorSystem = actorSystem private implicit val materializer: ActorMaterializer = ActorMaterializer() + private val connectionSettings = ClientConnectionSettings(actorSystem) + .withConnectingTimeout(connectionTimeout) + + private val connectionPoolSettings = ConnectionPoolSettings(actorSystem) + override def send[T](r: Request[T, S]): Future[Response[T]] = { implicit val ec: ExecutionContext = this.ec - val connectionSettings = ClientConnectionSettings(actorSystem) - .withIdleTimeout(r.readTimeout) - .withConnectingTimeout(connectionTimeout) - - val connectionPoolSettings = ConnectionPoolSettings(actorSystem) - .withConnectionSettings(connectionSettings) + val settings = connectionPoolSettings + .withConnectionSettings( + connectionSettings.withIdleTimeout(r.options.readTimeout)) requestToAkka(r) .flatMap(setBodyOnAkka(r, r.body, _)) .toFuture - .flatMap(req => - Http().singleRequest(req, settings = connectionPoolSettings)) + .flatMap(req => Http().singleRequest(req, settings = settings)) .flatMap { hr => val code = hr.status.intValue() @@ -285,7 +286,8 @@ object AkkaHttpHandler { private def apply(actorSystem: ActorSystem, ec: ExecutionContext, terminateActorSystemOnClose: Boolean, - connectionTimeout: FiniteDuration): SttpHandler[Future, Source[ByteString, Any]] = + connectionTimeout: FiniteDuration) + : SttpHandler[Future, Source[ByteString, Any]] = new FollowRedirectsHandler( new AkkaHttpHandler(actorSystem, ec, @@ -297,7 +299,8 @@ object AkkaHttpHandler { * e.g. mapping responses. Defaults to the global execution * context. */ - def apply(connectionTimeout: FiniteDuration = SttpHandler.DefaultConnectionTimeout)( + def apply(connectionTimeout: FiniteDuration = + SttpHandler.DefaultConnectionTimeout)( implicit ec: ExecutionContext = ExecutionContext.Implicits.global) : SttpHandler[Future, Source[ByteString, Any]] = AkkaHttpHandler(ActorSystem("sttp"), @@ -313,7 +316,8 @@ object AkkaHttpHandler { * context. */ def usingActorSystem(actorSystem: ActorSystem, - connectionTimeout: FiniteDuration = SttpHandler.DefaultConnectionTimeout)( + connectionTimeout: FiniteDuration = + SttpHandler.DefaultConnectionTimeout)( implicit ec: ExecutionContext = ExecutionContext.Implicits.global) : SttpHandler[Future, Source[ByteString, Any]] = AkkaHttpHandler(actorSystem, |