HttpClient.PostAsync需要实际延迟时间的两倍?

问题描述:

这是一个Windows窗体应用程序。我使用秒表来测量此操作的时间:HttpClient.PostAsync需要实际延迟时间的两倍?

HttpResponseMessage response = await httpClient.PostAsync(EndPoint, stringContent); 

它出来是600-700毫秒。 Web服务的延迟时间为〜250 ms。我检查与提琴手和请求正在采取< 300毫秒。所以我的问题是为什么会有额外的300-400毫秒?

+0

您是否正在使用来自*相同*请求的测量值(对同一个API没有不同的请求,但实际上是相同的网络数据包)?你是否在循环中执行了相同的代码并对结果取平均值? – 2014-10-02 15:58:16

+0

实际上,此API请求位于计时器刻度(intervel = 500)内。等待时间显示在应用程序的状态栏中。一位朋友建议PostAsync方法正在导致延迟。可能吗? – 2014-10-03 06:08:32

+0

如果你的意思是我的问题的答案是“不”和“不”,那么我建议你做这种测试。 – 2014-10-03 14:18:09

您必须考虑往返。您的代码有2部分:

  • 发送从您发送到Web服务的请求。
  • 读取从Web服务发送给您的回复。

所以你的请求仍然需要〜300ms,但响应也是如此,这就是为什么整个事情需要大约2倍的延迟。

+0

这看起来不对。 fiddler中整个流逝的列显示〜300 ms。从ClientConnected到ClientDoneResponse的整个流程开始。 – 2014-10-02 07:35:07