如何判断Connection:keep-alive是否正常工作?

时间:2016-02-18 18:29:44

标签: c# .net httpclient fiddler

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

我正在发送正确的标题(根据Fiddler),但无论我是否发送Connection:keep-alive标题,时间都是相同的。

我很想知道它是否始终有效(即使没有标题)或总是正在工作。

我设置的代码如下(我每次都重复使用相同的实例):

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

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

1 个答案:

答案 0 :(得分:0)

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

但是,如果您明确将Connection标头设置为“close”,则远程服务器将关闭连接。执行此操作后,每个请求的所有时间都慢了200ms,证明keep-alive一直正常工作。