Merge pull request #6292 from marceloduplicati/feature/openstack-httpmigration

Refactors OpenStack backend to use HttpClient
This commit is contained in:
Kenneth Skovhede
2025-05-24 13:46:13 +02:00
committed by GitHub
10 changed files with 837 additions and 654 deletions
@@ -60,6 +60,17 @@ public class JsonWebHelperHttpClient(HttpClient httpClient)
return Task.FromResult(request);
}
/// <summary>
/// Centralized method to prepare a request with the given URL and method setting useragent
/// </summary>
/// <param name="url">Url</param>
/// <param name="method">Method</param>
public virtual HttpRequestMessage CreateRequest(string url, string? method = null)
{
var request = new HttpRequestMessage(method != null ? HttpMethod.Parse(method) : HttpMethod.Get, url);
request.Headers.Add("User-Agent", UserAgent);
return request;
}
/// <summary>
/// Performs a multipart post and parses the response as JSON
/// </summary>
@@ -156,7 +167,7 @@ public class JsonWebHelperHttpClient(HttpClient httpClient)
/// <param name="req">Request object</param>
/// <param name="cancellationToken">Cancellation Token</param>
/// <typeparam name="T">Destination Type</typeparam>
protected virtual async Task<T> ReadJsonResponseAsync<T>(HttpRequestMessage req, CancellationToken cancellationToken)
public virtual async Task<T> ReadJsonResponseAsync<T>(HttpRequestMessage req, CancellationToken cancellationToken)
{
using var resp = await GetResponseAsync(req, HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);
return await ReadJsonResponseAsync<T>(resp, cancellationToken).ConfigureAwait(false);