diff --git a/OpenSim/Framework/RestClient.cs b/OpenSim/Framework/RestClient.cs
index d0dfc9d060..5c168722b0 100644
--- a/OpenSim/Framework/RestClient.cs
+++ b/OpenSim/Framework/RestClient.cs
@@ -58,17 +58,17 @@ namespace OpenSim.Framework
///
/// The base Uri of the web-service e.g. http://www.google.com
///
- private string _url;
+ private readonly string _url;
///
/// Path elements of the query
///
- private List _pathElements = new List();
+ private readonly List _pathElements = new();
///
/// Parameter elements of the query, e.g. min=34
///
- private Dictionary _parameterElements = new Dictionary();
+ private readonly Dictionary _parameterElements = new();
///
/// Request method. E.g. GET, POST, PUT or DELETE
@@ -78,12 +78,12 @@ namespace OpenSim.Framework
///
/// Temporary buffer used to store bytes temporarily as they come in from the server
///
- private byte[] _readbuf;
+ private readonly byte[] _readbuf;
///
/// MemoryStream representing the resulting resource
///
- private MemoryStream _resource;
+ private readonly MemoryStream _resource;
///
/// Default time out period
@@ -111,7 +111,7 @@ namespace OpenSim.Framework
_lock = new object();
}
- private object _lock;
+ private readonly object _lock;
#endregion constructors
@@ -207,7 +207,7 @@ namespace OpenSim.Framework
/// fully constructed Uri
private Uri buildUri()
{
- StringBuilder sb = new StringBuilder();
+ StringBuilder sb = new();
sb.Append(_url);
foreach (string e in _pathElements)
@@ -359,22 +359,23 @@ namespace OpenSim.Framework
request.Headers.ExpectContinue = false;
request.Headers.TransferEncodingChunked = false;
+ //if (keepalive)
+ {
+ request.Headers.TryAddWithoutValidation("Keep-Alive", "timeout=30, max=10");
+ request.Headers.TryAddWithoutValidation("Connection", "Keep-Alive");
+ request.Headers.ConnectionClose = false;
+ }
+ //else
+ // request.Headers.TryAddWithoutValidation("Connection", "close");
+
cancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(DefaultTimeout));
request.Content = new ByteArrayContent(src);
request.Content.Headers.TryAddWithoutValidation("Content-Type", "application/xml");
request.Content.Headers.TryAddWithoutValidation("Content-Length", src.Length.ToString());
- responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken.Token);
+ responseMessage = client.Send(request, HttpCompletionOption.ResponseContentRead, cancellationToken.Token);
responseMessage.EnsureSuccessStatusCode();
-
- using StreamReader reader = new StreamReader(responseMessage.Content.ReadAsStream());
- string responseStr = reader.ReadToEnd();
- if (WebUtil.DebugLevel >= 5)
- {
- int reqnum = WebUtil.RequestNumber++;
- WebUtil.LogOutgoingDetail("REST POST", responseStr);
- }
}
catch (HttpRequestException e)
{