C # избавиться от заголовка соединения в WebClient - PullRequest
14 голосов
/ 22 мая 2009

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

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

Connection : Keep-Alive

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

Ответы [ 2 ]

15 голосов
/ 02 марта 2010

Я столкнулся с той же проблемой этим утром. Следуя подсказке Скита, это может быть достигнуто путем передачи 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

4 голосов
/ 22 мая 2009

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

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

...