Когда WebRequest.GetResponse () устанавливает соединение в «Keep-Alive» c # - PullRequest
0 голосов
/ 14 июня 2011

У меня есть следующая функция

private byte[] Function(string url)
{
    HttpWebRequest webRequest= (HttpWebRequest)WebRequest.Create(url);
    webRequest.AddRange(0, 200);
    webRequest.Method = "GET";
    webRequest.KeepAlive = true;

    byte[] buffer = new byte[200];
    using (var webResponse =  webRequest.GetResponse())
    using (Stream webResponseStreem = webResponse.GetResponseStream())
    {
        webResponseStreem.Read(buffer, 0, 200);
    }

    return buffer;
}

, и я вызываю ее из другой части моего приложения.Иногда результат, который я получаю, не соответствует ожиданиям.Я заметил, что иногда вызов webRequest.GetResponse() устанавливает webRequest.Connection на "Keep-Alive", а иногда нет.От чего это зависит?

1 Ответ

1 голос
/ 14 июня 2011

Я не знаю, что контролирует, должен ли этот заголовок отправляться или нет, но согласно документации :

При использовании HTTP / 1.1 Keep-Alive являетсяпо умолчанию.Если для KeepAlive задано значение false, это может привести к отправке заголовка Connection: Close на сервер.

Поэтому, если вы используете HTTP / 1.1, не должно иметь значения, отправлен ли заголовок или нет.Если заголовок Connection: close отсутствует, сервер должен принять постоянное соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...