C # Cómo configurar HttpClient Keep-Alive en falso

Tuve un problema de bajo rendimiento con las solicitudes HTTP en .NET. La solicitud HTTP GET a una API REST en el host local tardó unos 500 ms en completarse. Pasé mucho tiempo para arreglarlo. He intentado de muchas maneras:HttpClient, HttpWebRequest, WebClient yRestSharp. Ninguno de ellos funciona. Se dice que la mayoría de las soluciones en Internet establecenProxy parámetro anull pero aun así no funcionará más rápido.

La única forma que encontré para reducir este tiempo es establecer el parámetro Keep-Alive de la solicitud en falso:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.KeepAlive = false;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Esto funciona muy bien. El tiempo se reduce a 7-10 ms. Pero ahora, por alguna razón, necesito usarHttpClient en lugar deHttpWebRequest. Y no puedo encontrar cómo configurar Keep-Alive en falso paraHttpClient. Lo único que encontré es cómo configurarlo como verdadero estableciendo un encabezado de "conexión" en "Keep-Alive".

Estoy usando este código para la solicitud POST de HttpClient:

        HttpClient _http = new HttpClient();
        _http.DefaultRequestHeaders.Accept.Clear();
        _http.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
        _http.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");

        var content = new StringContent(
            request, Encoding.UTF8, "application/%appname%+xml");
        content.Headers.ContentType.Parameters.Add(
            new NameValueHeaderValue("type", "payload"));

        HttpResponseMessage response = await _http.PostAsync(uri, content);

Y todavía tarda unos 500-600 ms en completarse.

Respuestas a la pregunta(5)

Su respuesta a la pregunta