2017-01-02 2 views
1

Я хочу получить возвращенные данные из Web api и сохранить в моей базе данных.Получить данные ответа из метода SendAsync ASP.NET API-интерфейсы API сообщений

мое сообщение код обработчика здесь:

protected override async Task<HttpResponseMessage> SendAsync(
    HttpRequestMessage request, CancellationToken cancellationToken) 
{ 
    Stopwatch watch = new Stopwatch(); 
    TimeSpan second; 
    watch.Start(); 
    // Call the inner handler. 
    var response = await base.SendAsync(request, cancellationToken); 
    watch.Stop(); 
    second = watch.Elapsed; 
    watch.Reset(); 
    if (second.Seconds > 5) 
    { 
     try 
     { 
      var req = JsonConvert.SerializeObject(request.GetRouteData()); 
      var data = JsonConvert.SerializeObject(response.Content); 

      var container = UnityConfig.GetConfiguredContainer(); 
      IPerformanceBal performance = container.Resolve<PerformanceBal>(); 
      performance.SavePerformance(new ApiPerformance() 
      { 
       CreatedAt = DateTime.Now, 
       ExecutionTime = second, 
       QueryResult = data, 
       Uri = request.RequestUri.AbsoluteUri 
      }); 
     } 
     catch (Exception exception) 
     { 

     } 
    } 

    return response; 
} 

я хочу на самом деле, чтобы получить данные в переменной «данные» вернулись из ответа ... somethig как «response.data» ... Любая помощь на thhis ??

+0

вы можете получить доступ к содержимому ответа 'await response.Content.ReadAsStringAsync()' – Nkosi

+0

@Nkosi - он работает для меня. Благодарю. –

ответ

1

Вы можете получить доступ к содержимому ответа непосредственно с помощью метода HttpContent.ReadAsStringAsync метода, как это ...

//...other code 

var responseContent = await response.Content.ReadAsStringAsync(); 

//...other code 

Оттуда вы должны быть в состоянии использовать его по мере необходимости.

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