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