// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. namespace Microsoft.Teams.Common.Http; using IHttpHeaders = IDictionary>; public interface IHttpRequestOptions { public IHttpHeaders Headers { get; set; } public void AddUserAgent(IList value); public void AddUserAgent(params string[] value); public void AddHeader(string key, IList value); public void AddHeader(string key, params string[] value); } public class HttpRequestOptions : IHttpRequestOptions { public IHttpHeaders Headers { get; set; } = new Dictionary>(); public void AddUserAgent(IList value) { AddHeader("User-Agent", value); } public void AddUserAgent(params string[] value) { AddHeader("User-Agent", value); } public void AddHeader(string key, IList value) { Headers.TryGetValue(key, out IList? values); values ??= []; foreach (var headerValue in value) { values.Add(headerValue); } Headers.Add(key, values); } public void AddHeader(string key, params string[] value) { Headers.TryGetValue(key, out IList? values); values ??= []; foreach (var headerValue in value) { values.Add(headerValue); } Headers.Add(key, values); } }