[英]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.