繁体   English   中英

WebRequest.GetResponse() 何时将 Connection 设置为“Keep-Alive” c#

[英]When does WebRequest.GetResponse() set Connection to “Keep-Alive” c#

我有以下 function

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" ,有时不会。 它取决于什么?

我不知道是什么控制这个 header 是否应该发送,但根据文档

使用 HTTP/1.1 时,默认情况下启用 Keep-Alive。 将 KeepAlive 设置为 false 可能会导致向服务器发送 Connection: Close header。

因此,如果您使用的是 HTTP/1.1,则是否发送 header 都无关紧要。 如果没有Connection: close header 服务器应该假设一个持久连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM