我正在向请求对象添加一个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();
});
Run Code Online (Sandbox Code Playgroud)
不,不要乱用请求cookie.一种可能的方法是在请求过滤器中将日期时间添加到请求上下文中.
request.Items.Add("RequestTimer", DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
然后在响应过滤器中读出它
DateTime.Now.Subtract((DateTime) request.Items["RequestTimer"]);
Run Code Online (Sandbox Code Playgroud)
但准确性取决于请求/响应过滤器的运行顺序.
你也许可以利用内置的分析ServiceStacks代替
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |