2013-08-30 3 views
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(); 
           }); 

ответ

5

Нет, не путайте с куки-сообщением запроса. Один из возможных способов - просто добавить datetime в контекст запроса в фильтр запроса.

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

, а затем прочитать его в ответе фильтра

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

Но точ- будет зависеть от того, в каком порядке запроса/ответа фильтры выполняются.

Возможно, вы сможете использовать ServiceStacks built-in profiling вместо

Смежные вопросы