Windows.Web.Http.HttpClient

时间:2018-10-23 11:17:21

标签: c# uwp win-universal-app

我一直在使用Windows.Web.Http.HttpClient进行API请求。我的HttpClient是一个单例。我使用Visual Studio中的Network Profiler分析了API调用的资源计时。在Timings拆分中,我看到Waiting(TTFB)部分花费的时间最多(大约275ms。有时甚至高达800ms)。

enter image description here

根据此doc,等待时间为

  

等待初始响应所花费的时间,也称为时间到   第一个字节。这一次捕获了往返于   服务器以及等待服务器交付所花费的时间   响应。

在不同平台的mac(NSUrlSession)或android上尝试相同的API调用时,在同一网络中的等待时间明显缩短。 我的问题是等待时间的延迟是否取决于HttpClient的实现?如果没有,我的NetworkAdapter代码是否需要更改?

1 个答案:

答案 0 :(得分:-1)

TTFB是往返时间(RTT)和服务器响应时间(SRT)的函数,两者都基本上不在客户端操作系统的控制范围内。与基本的健全性检查一样,我建议使用HttpClient SDK Sample app的方案1测量TTFB。一种可能的解释是Windows设备与Mac / Android设备的网络设置不同(例如,它们是否都通过WiFi连接?如果是,它们是否都使用相同的频段(2.4 GHz或5 GHz) ?)。但是,最可能的解释是HttpClient发送的HTTP请求不同于NSUrlSession发送的HTTP请求(例如,就标题而言),从而导致服务器端处理时间不同。

TTFB非常依赖于站点。这是我将VS2017 Network Profiler与HttpClient SDK示例应用程序一起使用的最终结果:

Bing.com:

www.bing.com

Amazon.com:

www.amazon.com

Microsoft.com:

www.microsoft.com

相关问题