diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs
index 09c1652..fb0d281 100644
--- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs
+++ b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.IO;
using System.Net.Http;
@@ -12,6 +12,8 @@ public class AwsHttpConnection : HttpConnection
private readonly ICredentialsProvider _credentialsProvider;
private readonly string _region;
+ public bool KeepAlive { get; set; }
+
///
/// Initializes a new instance of the AwsHttpConnection class with the specified AccessKey, SecretKey and Token.
///
@@ -19,6 +21,7 @@ public class AwsHttpConnection : HttpConnection
[Obsolete("Use AwsHttpConnection(string region, ICredentialsProvider credentialsProvider)")]
public AwsHttpConnection(AwsSettings awsSettings)
{
+ KeepAlive = false;
if (awsSettings == null) throw new ArgumentNullException(nameof(awsSettings));
if (string.IsNullOrWhiteSpace(awsSettings.Region)) throw new ArgumentException("awsSettings.Region is invalid.", nameof(awsSettings));
_region = awsSettings.Region.ToLowerInvariant();
@@ -41,7 +44,6 @@ public AwsHttpConnection(string region)
{
}
-
///
/// Initializes a new instance of the AwsHttpConnection class with credentials from the Instance Profile service
///
@@ -60,6 +62,8 @@ public AwsHttpConnection(string region, ICredentialsProvider credentialsProvider
protected override System.Net.HttpWebRequest CreateHttpWebRequest(RequestData requestData)
{
var request = base.CreateHttpWebRequest(requestData);
+ request.Headers.Remove("Connection");
+ request.Headers.Add("Connection", KeepAlive ? "Keep-Alive" : "close");
SignRequest(new HttpWebRequestAdapter(request), requestData);
return request;
}
@@ -67,6 +71,8 @@ protected override System.Net.HttpWebRequest CreateHttpWebRequest(RequestData re
protected override HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
{
var request = base.CreateHttpRequestMessage(requestData);
+ request.Headers.Remove("Connection");
+ request.Headers.Add("Connection", KeepAlive ? "Keep-Alive" : "close");
SignRequest(new HttpRequestMessageAdapter(request), requestData);
return request;
}
@@ -95,3 +101,4 @@ private void SignRequest(IRequest request, RequestData requestData)
}
}
}
+