如何判断连接:保持活动状态是否正常工作

本文关键字:是否 活动状态 常工作 工作 何判断 判断 连接 | 更新日期: 2023-09-27 18:35:25

在使用 HttpClient 从 C# 控制台应用程序进行测试时,如何判断我的 HTTP 连接是否被重用?

我正在发送正确的标头(根据 Fiddler 的说法),但无论我是否发送连接:保持活动状态标头,时间都是相同的。

我很想知道它是总是工作(即使没有标题)还是总是工作。

我的设置代码如下(我每次都重用同一个实例):

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

顺便说一句:我看不到直接设置此标头的更简单方法 - 您只能对其添加()。这意味着,如果您调用该方法两次,则最终会得到"keep-alive,keep-alive"作为值!

如何判断连接:保持活动状态是否正常工作

我发现最简单的方法是使用计时并显式禁用它以获取引用。 默认情况下,.net 版本的 HttpClient 似乎会自动重用连接,只要远程服务器在其响应中发送正确的标头。

但是,如果显式将连接标头设置为"关闭",则远程服务器将关闭连接。 完成此操作后,每个请求的所有计时都慢了 200 毫秒,证明 keep-alive 一直工作正常。