Как правильно отправить заголовок KeepAlive в c#?

Мне нужно отправить такой запрос с помощью HttpWebRequest:

POST https://sap.site.com.mx/sap/bw/BEx?SAP-LANGUAGE=ES&PAGENO=1&CMD=PROCESS_VARIABLES&REQUEST_NO=0&CMD=PROCESS_VARIABLES&SUBCMD=VAR_SUBMIT&VARID= HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-MX,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

Однако я не могу отправить заголовок Connection. Вот мой код:

// request
HttpWebRequest request = CreateWebRequestObject(url);
request.CookieContainer = this.cc;
request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2";

// headers
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.Headers.Add("Accept-Language", " es-MX,es;q=0.8,en-us;q=0.5,en;q=0.3");
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.KeepAlive = true; // it does not work as expected
request.ServicePoint.Expect100Continue = false; // remove Expect header

// post
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = buffer.Length;

using (Stream stream = request.GetRequestStream())
  stream.Write(buffer, 0, buffer.Length);

Но когда я проверяю запрос в Fiddler, свойство Connection не появляется.

Кроме того, эти сообщения не работают для меня:

  1. Поддерживать активное HTTP-соединение в C#?
  2. C# — Соединение: заголовок keep-alive не отправляется во время HttpWebRequest

Как отправить соединение заголовок правильно?

ОБНОВЛЕНИЕ

Это добавление Keep-Alive с использованием HTTP/1.0

request.ProtocolVersion = HttpVersion.Version10;
//request.KeepAlive = true;  // not necessary

При изменении свойства ProtocolVersion на HttpVersion.Version11 заголовок Keep-Alive не отправляется:

request.ProtocolVersion = HttpVersion.Version11;
request.KeepAlive = true;

Как я могу отправить заголовок Keep-Alive используя Http/1.1?

5
задан Community 23 May 2017 в 12:23
поделиться