Skip to content

Commit 6b281a8

Browse files
authored
Ensure HTTP response object is disposed (#2447)
1 parent ea395b8 commit 6b281a8

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/Confluent.SchemaRegistry/Rest/RestService.cs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -341,24 +341,28 @@ private static bool IsRetriable(int statusCode)
341341
/// </remarks>
342342
protected async Task<T> RequestAsync<T>(string endPoint, HttpMethod method, params object[] jsonBody)
343343
{
344-
var response = await ExecuteOnOneInstanceAsync(() => CreateRequest(endPoint, method, jsonBody))
345-
.ConfigureAwait(continueOnCapturedContext: false);
346-
string responseJson =
347-
await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false);
348-
T t = JObject.Parse(responseJson).ToObject<T>(JsonSerializer.Create());
349-
return t;
344+
using (var response = await ExecuteOnOneInstanceAsync(() => CreateRequest(endPoint, method, jsonBody))
345+
.ConfigureAwait(continueOnCapturedContext: false))
346+
{
347+
string responseJson =
348+
await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false);
349+
T t = JObject.Parse(responseJson).ToObject<T>(JsonSerializer.Create());
350+
return t;
351+
}
350352
}
351353

352354
/// <remarks>
353355
/// Used for end points that return a json array [ ... ]
354356
/// </remarks>
355357
protected async Task<List<T>> RequestListOfAsync<T>(string endPoint, HttpMethod method, params object[] jsonBody)
356358
{
357-
var response = await ExecuteOnOneInstanceAsync(() => CreateRequest(endPoint, method, jsonBody))
358-
.ConfigureAwait(continueOnCapturedContext: false);
359-
return JArray.Parse(
360-
await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false))
361-
.ToObject<List<T>>(JsonSerializer.Create());
359+
using (var response = await ExecuteOnOneInstanceAsync(() => CreateRequest(endPoint, method, jsonBody))
360+
.ConfigureAwait(continueOnCapturedContext: false))
361+
{
362+
return JArray.Parse(
363+
await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false))
364+
.ToObject<List<T>>(JsonSerializer.Create());
365+
}
362366
}
363367

364368
private async Task<HttpRequestMessage> CreateRequest(string endPoint, HttpMethod method, params object[] jsonBody)

0 commit comments

Comments
 (0)