簡體   English   中英

如何確定Connection:keep-alive是否正常工作?

[英]How can I tell if Connection: keep-alive is working?

在使用HttpClient從C#控制台應用程序進行測試時,如何確定我的HTTP連接是否正在重用?

我正在發送正確的標頭(根據Fiddler),但是無論我發送Connection:keep-alive標頭的時間都是相同的。

我很好奇要知道它是否一直在工作(即使沒有標題)還是一直工作。

我設置它的代碼如下(並且我每次都重復使用同一實例):

    if (String.IsNullOrEmpty(client.DefaultRequestHeaders.Connection.ToString()))
    {
        client.DefaultRequestHeaders.Add("Connection", "keep-alive");
    }

順便說一句:我看不到直接設置此標頭的簡單方法-您只能對其添加Add()。 這意味着,如果您兩次調用該方法,那么最終將獲得“ keep-alive,keep-alive”作為值!

我發現最簡單的方法是使用計時並明確禁用它以獲得參考。 默認情況下 ,只要遠程服務器在響應中發送正確的標頭,.net版本的HttpClient似乎就會自動重用連接。

但是,如果將Connection標頭顯式設置為“ close”,則遠程服務器將關閉連接。 完成此操作后,每個請求的所有計時都慢了200毫秒,這證明keep-alive一直都可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM