[英]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.