Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpHtRqH 458 of 509 menu
◀ ▶

Заголовки запроса в C#

Общие заголовки клиента лежат в DefaultRequestHeaders и уходят с каждым его запросом. Имена вроде "Content-Length" сюда не ставят: их задаёт само тело HttpContent.

Имя и значение добавляют вызовом TryAddWithoutValidation. Он не проверяет, входит ли имя в стандартный список. Так ставят и обычный Accept, и свой заголовок. С "Accept: text/html" ответ example.com остаётся HTML, длина тела больше нуля:

using HttpClient client = new(); client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html"); string text = await client.GetStringAsync("https://example.com/"); Console.WriteLine(text.Length > 0);

Пользовательский "X-Trace" уходит на сервер; httpbin отражает его в JSON ответа:

using HttpClient client = new(); client.DefaultRequestHeaders.TryAddWithoutValidation("X-Trace", "alpha-7"); string text = await client.GetStringAsync("https://httpbin.org/headers"); Console.WriteLine(text.Contains("alpha-7"));

Добавьте "Accept-Language: en" и проверьте через httpbin, что заголовок виден в ответе.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить