From 049e9977f4798e977fee76366d9ef055986ac189 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 25 Nov 2024 10:05:42 +0100 Subject: [PATCH] =?UTF-8?q?feat(BaseHttpClientService):=20Optionale=20Stan?= =?UTF-8?q?dard-Header=20und=20QueryParams=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseHttpClientService.cs | 22 +++++++++++++++++++ DigitalData.Core.Client/HttpClientOptions.cs | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/DigitalData.Core.Client/BaseHttpClientService.cs b/DigitalData.Core.Client/BaseHttpClientService.cs index 7d08277..55104bb 100644 --- a/DigitalData.Core.Client/BaseHttpClientService.cs +++ b/DigitalData.Core.Client/BaseHttpClientService.cs @@ -16,12 +16,18 @@ namespace DigitalData.Core.Client public string Path { get; init; } = string.Empty; + protected IEnumerable>? _headers; + + protected IEnumerable>? _queryParams; + public BaseHttpClientService(HttpClient client, CookieContainer cookieContainer, IOptions clientOptions) { _client = client; _cookies = cookieContainer; Uri = clientOptions.Value.Uri.Trim(URI_TRIM_CHARS); Path = clientOptions.Value.Path.Trim(URI_TRIM_CHARS); + _headers = clientOptions.Value.Headers; + _queryParams = clientOptions.Value.QueryParams; } public CookieCollection GetCookies(string path = "") => _cookies.GetCookies(uri: new Uri(UriCombine(Uri, path, path.Trim(URI_TRIM_CHARS)))); @@ -39,6 +45,22 @@ namespace DigitalData.Core.Client bool saveCookie = true ) { + // merge with default headers + if(_headers is not null) + { + var mergedHeaders = headers?.ToList() ?? new List>(); + mergedHeaders.AddRange(_headers); + headers = mergedHeaders; + } + + // Add default query parameters + if(_queryParams is not null) + { + var mergedQueryParams = queryParams?.ToList() ?? new List>(); + mergedQueryParams.AddRange(_queryParams); + queryParams = mergedQueryParams; + } + // set default HTTP method as GET method ??= HttpMethod.Get; diff --git a/DigitalData.Core.Client/HttpClientOptions.cs b/DigitalData.Core.Client/HttpClientOptions.cs index b138b59..050855c 100644 --- a/DigitalData.Core.Client/HttpClientOptions.cs +++ b/DigitalData.Core.Client/HttpClientOptions.cs @@ -7,5 +7,9 @@ namespace DigitalData.Core.Client public string Uri { get; set; } = string.Empty; public string Path { get; set; } = string.Empty; + + public IEnumerable>? Headers { get; init; } = null; + + public IEnumerable>? QueryParams { get; init; } = null; } } \ No newline at end of file