Я создал API для своего настольного программного обеспечения, чтобы избежать кодирования и перестроения каждый раз, когда я хочу вносить изменения в заголовки HttpClient, но я не знаю, как создать собственный список HttpRequestHeader и добавить его в HttpClient как Заголовки запроса.
Я ищу решение, подобное этому:
clients.DefaultRequestHeaders = list_of_json_header_values;
Вот как выглядит мой код для выполнения запроса:
public static string DownloadSource(string link)
{
try
{
HttpClientHandler hch = new HttpClientHandler();
hch.Proxy = null;
hch.UseProxy = false;
using (HttpClient clients = new HttpClient(hch))
{
//clients.DefaultRequestHeaders = list_of_json_header_values; ???
using (HttpResponseMessage response = clients.GetAsync(link).Result)
{
using (HttpContent content = response.Content)
{
return content.ReadAsStringAsync().Result;
}
}
}
}
catch (Exception _ex)
{
MessageBox.Show(_ex.ToString());
}
}
Вот как я получаю заголовки из JSON:
var headers_json = "json here";
var objects = JObject.Parse(headers_json);
foreach (var item in objects["header_settings"])
{
//list_of_json_header_values.Add(item.ToString()); ???
Console.WriteLine(item.ToString());
}
Вывод на консоль:
"Cache-Control": "no-cache"
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
"Accept-Language": "en-GB,en;q=0.5"