2017-01-02 3 views
1

Ich möchte zurückgegebene Daten von Web API abrufen und in meiner Datenbank speichern.Erhalten Antwortdaten von SendAsync-Methode ASP.net Web API-Meldungshandlers

Handler-Code Meine Nachricht ist hier:

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; 
} 

ich eigentlich wollen Daten bekommen in "Daten" Variable aus Antwort zurückgegeben ... somethig wie "response.data" ... Jede Hilfe zu thhis ??

+0

können Sie auf den Antwort-Inhalt zugreifen 'erwarten Antwort.Content.ReadAsStringAsync()' – Nkosi

+0

@ Nkosi - Es funktioniert für mich. Vielen Dank. –

Antwort

1

Sie können die Antwortinhalt direkt Zugriff auf die HttpContent.ReadAsStringAsync Methode Methode wie folgt mit ...

//...other code 

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

//...other code 

Von dort aus sollten Sie in der Lage sein, es zu benutzen, wie gebraucht.

Verwandte Themen