繁体   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