aboutsummaryrefslogtreecommitdiff
path: root/async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala
diff options
context:
space:
mode:
Diffstat (limited to 'async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala')
-rw-r--r--async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala18
1 files changed, 17 insertions, 1 deletions
diff --git a/async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala b/async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala
index b6c9249..984ecf6 100644
--- a/async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala
+++ b/async-http-client-handler/src/main/scala/com/softwaremill/sttp/asynchttpclient/AsyncHttpClientHandler.scala
@@ -17,6 +17,8 @@ import org.asynchttpclient.{
AsyncCompletionHandler,
AsyncHandler,
AsyncHttpClient,
+ DefaultAsyncHttpClientConfig,
+ DefaultAsyncHttpClient,
HttpResponseBodyPart,
HttpResponseHeaders,
HttpResponseStatus,
@@ -155,7 +157,11 @@ abstract class AsyncHttpClientHandler[R[_], S](asyncHttpClient: AsyncHttpClient,
}
private def requestToAsync(r: Request[_, S]): AsyncRequest = {
- val rb = new RequestBuilder(r.method.m).setUrl(r.uri.toString)
+ val readTimeout = r.options.readTimeout
+ val rb = new RequestBuilder(r.method.m)
+ .setUrl(r.uri.toString)
+ .setRequestTimeout(
+ if (readTimeout.isFinite()) readTimeout.toMillis.toInt else -1)
r.headers.foreach { case (k, v) => rb.setHeader(k, v) }
setBody(r, r.body, rb)
rb.build()
@@ -289,6 +295,16 @@ abstract class AsyncHttpClientHandler[R[_], S](asyncHttpClient: AsyncHttpClient,
}
}
+object AsyncHttpClientHandler {
+
+ private[asynchttpclient] def defaultClient(connectionTimeout: Int): AsyncHttpClient =
+ new DefaultAsyncHttpClient(
+ new DefaultAsyncHttpClientConfig.Builder()
+ .setConnectTimeout(connectionTimeout)
+ .build()
+ )
+}
+
object EmptyPublisher extends Publisher[ByteBuffer] {
override def subscribe(s: Subscriber[_ >: ByteBuffer]): Unit = {
s.onComplete()