2016-07-27 7 views
0

キューからデータを読み取り、RESTFulサービスを使用して別のWebサービスを送信するキュートリガー関数を作成しています。今は、非常にシンプルなREST APIコールをテストしています。ヘッダーにトークンを提供するだけで、サーバーからの非常に単純なJSON応答が必要です。 JSONには電子メールアドレスのエントリだけが含まれています。非同期的に応答を読み込むと、非同期呼び出しに応じて関数プロトタイプを変更する必要があります。しかし、それはAzure関数appでは不可能です。では、JSONレスポンスオブジェクトを読み込むにはどうすればよいでしょうか?HTTPResponseMessageからの応答内容の読み取り

これは、これまでの私の試みです:

あなたがこれを行うことができます

if (response.IsSuccessStatusCode) 

using System; 
using System.Net.Http; 
using System.Net.Http.Headers; 

public static void Run(string myQueueItem, TraceWriter log) 
{ 
    string URL = "https://api.spotlightessentials.com/api/v2/user"; 
    HttpClient client = new HttpClient(); 
    client.BaseAddress = new Uri(URL); 


    client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json")); 
    client.DefaultRequestHeaders.Add("token","<Token value>"); 

    HttpResponseMessage response = client.GetAsync("").Result; 

    if (response.IsSuccessStatusCode) 
    { 
     // How do I read Json response here 
    } 

    } 
    else 
    { 
     Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase); 
    } 

} 

答えて

0

var responseData = await response.Content.ReadAsAsync<YourObjectTypeHere>(); 

するか、また、あなたに応じて、このような何かを行うことができますニーズ:

var responseData = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); 

if (!string.IsNullOrWhiteSpace(responseData)) 
{ 
    var responseDataObject = 
     JsonConvert.DeserializeObject<YourObjectTypeHere>(responseData); 
} 

または2.

+0

の部品の組み合わせ、私が代わりに 'YourObjectTypeHere' – Krish

+0

のここに与えることができますどのようなあなたはにキャストデータをオブジェクトのタイプ/クラスを置きます。 – Kyle

関連する問題