Files
jsmr/JSMR.Infrastructure/Http/HttpService.cs
Brian Bicknell 62c2efab01
All checks were successful
ci / build-test (push) Successful in 2m18s
ci / publish-image (push) Has been skipped
Updated scanner to infer when it has reached the end of results.
2026-03-07 01:26:04 -05:00

31 lines
1.1 KiB
C#

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