Заголовки HTTP-запросов

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                if (rangeTo > 0L)
                {
                    request.AddRange(rangeFrom, rangeTo);
                }

                if (Headers != null)
                {
                    for (int i = 0; i < Headers.Count; i++)
                    {
                        string headerName = Headers.GetKey(i);
                        string headerValue = Headers.Get(i);

                        string headerNameLowercased = headerName.ToLower();
                        //TODO: Handle other special headers.
                        if (headerNameLowercased.Equals("accept"))
                        {
                            request.Accept = headerValue;
                            continue;
                        }
                        else if (headerNameLowercased.Equals("user-agent"))
                        {
                            request.UserAgent = headerValue;
                            continue;
                        }
                        else if (headerNameLowercased.Equals("referer"))
                        {
                            request.Referer = headerValue;
                            continue;
                        }
                        else if (headerNameLowercased.Equals("host"))
                        {
                            request.Host = headerValue;
                            continue;
                        }
                        else if (headerNameLowercased.Equals("connection"))
                        {
                            request.Connection = headerValue;
                            continue;
                        }

                        request.Headers.Add(headerName, headerValue);
                    }
                }

Некоторые заголовки можно задать только через соответствующие свойства класса HttpWebRequest. Перечислите все такие свойства, пжлст.
И почему не получается задать значение для заголовка Connection? Он пишет: Вызвано исключение: "System.ArgumentException" в System.dll. С этим свойством нельзя задавать Keep-Alive и Close..
Но ведь в браузерах написано, что установлено одно из этих значений :thinking:

Это контрольная?))
Смотрите сами HttpWebRequest Class (System.Net) | Microsoft Docs

Наверно это означает, что уже задано KeepAlive true.

Это список всех свойств. А мне нужны только те, которые отвечают за заголовки, чтобы прописать их в коде. Я ведь не знаю точно, какие свойства каким заголовкам соответствуют.

А свойство Connection тогда зачем? :thinking:

Ctrl+F http header )

О, и там выше на странице оказывается есть и про заголовки таблица.

И, кстати, ещё не понятно, как должны выглядеть значения некоторых заголовков.
По-этому, видимо, код всё-равно придётся допиливать поэтапно, потому что сразу всё не пропишешь.