С# избавиться от заголовка Connection в WebClient

Я использую С# с помощью WebClient().

Я тестировал, какие заголовки отправлены, и я заметил, что следующий заголовок автоматически добавляется.

Connection : Keep-Alive

Есть ли способ удалить это?

Ответ 1

Сегодня утром я столкнулся с тем же вопросом. Следуя подсказке Skeet, его можно достичь, передав HttpWebRequest в WebClient, наследуя его:

class MyWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).KeepAlive = false;
        }
        return request;
    }
}

Теперь отправленные заголовки будут включать Connection : close

Ответ 2

Используйте HttpWebRequest вместо WebClient (это немного менее удобно, но не очень) и установите KeepAlive свойство false.

Я не тестировал это - возможно, что он просто изменит значение заголовка Connection вместо его удаления - но стоит попробовать. Документы для свойства Connection по крайней мере предполагают, что он добавляет Keep-Alive.