如何衡量实际HttpWebResponse的经过时间与HttpWebRequest的传输之间的关系?

时间:2009-05-04 20:26:38

标签: c# .net

我有一个应用程序将大文件发布到供应商的API并获得响应。它是这样做的:

HttpWebRequest webRequest = BuildWebRequest(..., requestParams.Data, ...);
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

我想测量仅响应本身的经过时间(不包括传输/发布大型multipart / form-data所需的时间)。

我没有看到任何HttpWebRequest方法或事件的组合,我可以将请求上传与响应下载分开。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

除非您发送文件,否则请求时间将是微不足道的。

答案 1 :(得分:0)

您的呼叫代码无法告知从服务器发送响应的时间。您可以获得的最佳结果是响应中的第一个数据在响应流中可用。

答案 2 :(得分:0)

如果这仅用于测试,我会使用Fiddler来监控流量。它可以显示您想要的信息类型。

以下是使用fiddler:

捕获的快速Web服务调用的示例输出
== TIMING INFO ============
ClientConnected:        15:41:07:2804
ClientDoneRequest:      15:41:07:6398
Gateway Determination:  0ms
DNS Lookup:         0ms
TCP/IP Connect:         0ms
ServerGotRequest:       15:41:07:6398
ServerBeginResponse:    15:41:07:7804
ServerDoneResponse: 15:41:07:7804
ClientBeginResponse:    15:41:07:7804
ClientDoneResponse: 15:41:07:7804

如果您从未使用过fiddler进行Web服务调用,请确保将以下内容添加到web.config中:

  <system.net>
    <defaultProxy>
      <proxy  proxyaddress="http://127.0.0.1:8888" />
    </defaultProxy>
  </system.net>