从 REST 客户端测量 HTTP 响应时间

Measure HTTP Response Time from a REST Client

我正在尝试创建一个 REST 客户端来测量执行 HTTP 请求所花费的时间,即测量客户端请求到达客户端后服务器响应之间的时间。(有其他更简单的方法可以找到它,比如 fiddler 等,但无论如何我都需要它)。我正在关注此处提供的 Microsoft 示例:

https://msdn.microsoft.com/en-us/library/debx8sh9%28v=vs.110%29.aspx

我应该只记录返回响应的时间吗?

// Send the request:

        DateTime T = System.DateTime.UtcNow; //--> Note the initial Time

        HttpWebResponse response = (HttpWebResponse) req.GetResponse();

        TimeSpan TT = System.DateTime.UtcNow - T; //--> Note the Time Difference

或者我应该在读取响应流后计算时间:

     DateTime T = System.DateTime.UtcNow;//--> Note the initial Time

                HttpWebResponse response = (HttpWebResponse) req.GetResponse();
                // Get the stream containing content returned by the server.
                dataStream = response.GetResponseStream();
                // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
        // Read the content.
        string responseFromServer = reader.ReadToEnd();                
TimeSpan TT = System.DateTime.UtcNow - T;//--> Note the Time Difference

我只是不确定向服务器发出请求以及服务器的响应对客户端可用的确切行。

根据msdn documentationGetResponse()将向服务器发送请求并检索响应。

如果您只对通话时间感兴趣,那么第一个选项将是您最好的选择。