2017-01-02 17 views
1

Web APIから返されたデータをフェッチし、データベースに保存します。SendAsyncメソッドから応答データを取得するASP.net Web 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; 
} 

私は実際に変数が「response.data」のようなsomethig ...レスポンスから返された「データ」のデータを取得したい... thhis上の任意のヘルプ?

+0

あなたは応答コンテンツ 'await response.Content.ReadAsStringAsync()'にアクセスできます – Nkosi

+0

@Nkosi - それは私のために働きます。ありがとう。 –

答えて

1

あなたが直接このようなHttpContent.ReadAsStringAsyncメソッドメソッドを使用して応答コンテンツにアクセスすることができます...

//...other code 

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

//...other code 

そこからは、必要に応じてそれを使用することができるはずです。

関連する問題