microsoft/teams.net

Public

mirrored from https://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
pr-134

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Common/Http/HttpRequestOptions.cs

57lines · modeblame

82a4e3c3Rajan1 years ago1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
73e7847aAlex Acebo1 years ago4namespace Microsoft.Teams.Common.Http;
5
6using IHttpHeaders = IDictionary<string, IList<string>>;
7
8public interface IHttpRequestOptions
9{
10public IHttpHeaders Headers { get; set; }
11
12public void AddUserAgent(IList<string> value);
13public void AddUserAgent(params string[] value);
14public void AddHeader(string key, IList<string> value);
15public void AddHeader(string key, params string[] value);
16}
17
18public class HttpRequestOptions : IHttpRequestOptions
19{
20public IHttpHeaders Headers { get; set; } = new Dictionary<string, IList<string>>();
21
22public void AddUserAgent(IList<string> value)
23{
24AddHeader("User-Agent", value);
25}
26
27public void AddUserAgent(params string[] value)
28{
29AddHeader("User-Agent", value);
30}
31
32public void AddHeader(string key, IList<string> value)
33{
34Headers.TryGetValue(key, out IList<string>? values);
35values ??= [];
36
37foreach (var headerValue in value)
38{
39values.Add(headerValue);
40}
41
42Headers.Add(key, values);
43}
44
45public void AddHeader(string key, params string[] value)
46{
47Headers.TryGetValue(key, out IList<string>? values);
48values ??= [];
49
50foreach (var headerValue in value)
51{
52values.Add(headerValue);
53}
54
55Headers.Add(key, values);
56}
57}