2016-07-27 2 views
0

Я пишу функцию триггера очереди, где я читаю данные из очереди и отправляю им другую веб-службу, используя службу RESTFul. Прямо сейчас, я тестирую очень простой вызов REST api, мне нужно только предоставить токен в заголовке и ожидать очень простой ответ JSON с сервера. JSON просто содержит адрес электронной почты, и об этом. Я понимаю, что если я прочитаю ответ асинхронно, мне нужно будет изменить прототип функции для соответствия асинхронному вызову. Но это невозможно в приложении Azure. Итак, что лучший способ прочитать объект ответа JSON?Чтение содержимого ответа из HTTPResponseMessage

Это моя попытка до сих пор:

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

В вашей

if (response.IsSuccessStatusCode) 

вы можете сделать это:

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