3

我目前正在向请求对象添加一个 cookie,并从响应中的当前时间中减去它,但我假设有更好的方法来做到这一点。此外,在实际用例中可能无法重复使用相同的 Cookie 密钥。

有任何想法吗?

            RequestFilters.Add((request, response, dto) =>
                               {
                                   request.Cookies.Add("Start", new Cookie("Start", DateTime.Now.ToString()));
                                   request.ResponseContentType = ContentType.Json;
                               });

        ResponseFilters.Add((request, response, dto) =>
                                {
                                    Console.WriteLine("{0} : [{1}]", request.RawUrl, DateTime.Now.Subtract(DateTime.Parse(request.Cookies["Start"].Value)).Milliseconds);
                                    request.Cookies.Clear();
                                });
4

1 回答 1

5

不,不要弄乱请求 cookie。一种可能的方法是将日期时间添加到请求过滤器中的请求上下文中。

request.Items.Add("RequestTimer", DateTime.Now);

然后在响应过滤器中读出

DateTime.Now.Subtract((DateTime) request.Items["RequestTimer"]);

但准确性将取决于请求/响应过滤器的运行顺序。

您也许可以改用ServiceStacks 内置分析

于 2013-09-02T10:19:49.997 回答