-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Description
This change fixed it. (HttpClient was never disposed)
private async Task RequestAsync(
IEnumerable errorHandlers,
HttpMethod method,
string path,
HttpContent content = null,
Dictionary<string, string> extraParams = null,
bool includeAuthToQuery = true,
bool headerIsBody = false,
TimeSpan? requestTimeout = null)
{
using (HttpClient client = GetHttpClient())
{
var response = await RequestInnerAsync(client, requestTimeout,
HttpCompletionOption.ResponseHeadersRead,
CancellationToken.None,
method,
path,
content,
extraParams,
includeAuthToQuery);
string responseContent = String.Empty;
if (!headerIsBody)
{
responseContent = await response.Content.ReadAsStringAsync();
}
else
{
IEnumerable<string> values;
if (response.Headers.TryGetValues("X-Influxdb-Version", out values))
{
responseContent = values.First();
}
}
HandleIfErrorResponse(response.StatusCode, responseContent, errorHandlers);
Debug.WriteLine("[Response] {0}", response.ToJson());
Debug.WriteLine("[ResponseData] {0}", responseContent);
return new InfluxDbApiResponse(response.StatusCode, responseContent);
}
}
private async Task<HttpResponseMessage> RequestInnerAsync(
HttpClient client,
TimeSpan? requestTimeout,
HttpCompletionOption completionOption,
CancellationToken cancellationToken,
HttpMethod method,
string path,
HttpContent content = null,
Dictionary<string, string> extraParams = null,
bool includeAuthToQuery = true)
{
if (requestTimeout.HasValue)
{
client.Timeout = requestTimeout.Value;
}
StringBuilder uri = BuildUri(path, extraParams, includeAuthToQuery);
HttpRequestMessage request = PrepareRequest(method, content, uri);
Debug.WriteLine("[Request] {0}", request.ToJson());
if (content != null)
{
Debug.WriteLine("[RequestData] {0}", content.ReadAsStringAsync().Result);
}
return await client.SendAsync(request, completionOption, cancellationToken);
}
Metadata
Metadata
Assignees
Labels
No labels