namespace JSMR.Infrastructure.Http; public class HttpService(HttpClient httpClient) : IHttpService { public Task GetStringAsync(string url, CancellationToken cancellationToken) => GetStringAsync(url, new Dictionary(), cancellationToken); public async Task GetStringAsync(string url, IDictionary headers, CancellationToken cancellationToken) { using HttpRequestMessage request = new(HttpMethod.Get, url); foreach (KeyValuePair header in headers) { request.Headers.TryAddWithoutValidation(header.Key, header.Value); } httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("JSMR/1.0"); using HttpResponseMessage response = await httpClient.SendAsync(request, cancellationToken); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(cancellationToken); } }