gpt4 book ai didi

c# - 在 WinRT 的 HttpClient 类中使用 Keep-Alive 连接?

转载 作者:行者123 更新时间:2023-11-30 14:13:08 25 4
gpt4 key购买 nike

我们的 WinRT 应用程序在打开与我们的服务器的连接时速度极慢。请求需要大约 500 毫秒才能运行。这会阻止我们的某些场景。

调试时,我们注意到当 Fiddler 处于事件状态时,请求速度要快得多 - 每个请求约 100 毫秒。后来搜索了一下才知道是因为 Fiddler 在代理调用时使用了 Keep-Alive 连接,这使得我们的代理调用速度更快。

我们以两种方式仔细检查了这一点。

  1. 我们将 UseProxy 设置为 false,并观察到请求变慢了。
  2. 我们关闭了 Fiddler 的“重用连接”选项,并观察到请求又变慢了。

我们尝试通过 Connection header (.Connection.Add("Keep-Alive")) 启用保持事件状态,但这似乎没有任何效果 - 事实上, header 似乎被 .NET 公然忽略组件并且没有根据请求发送(同样,通过 Fiddler 检查)。

有谁知道如何在 Windows 8、WinRT、HttpClient 类中设置请求保持事件状态?

最佳答案

以下设置正确的 header 为我打开保持事件状态(客户端是 HttpClient)

client.DefaultRequestHeaders.Connection.Clear();
client.DefaultRequestHeaders.ConnectionClose = false;
// The next line isn't needed in HTTP/1.1
client.DefaultRequestHeaders.Connection.Add("Keep-Alive");

如果你想关闭keep-alive,使用

client.DefaultRequestHeaders.Connection.Clear();
client.DefaultRequestHeaders.ConnectionClose = true;

关于c# - 在 WinRT 的 HttpClient 类中使用 Keep-Alive 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com