簡體   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