我正在编写队列触发器功能,我从队列中读取数据,并使用RESTFul服务向他们发送另一个Web服务。现在,我正在测试一个非常简单的REST api调用,我只需要在头文件中提供令牌,并期望从服务器获得非常简单的JSON响应。 JSON只包含一个电子邮件地址条目,就是它。我的理解是,如果我异步读取响应,我需要更改函数原型以符合异步调用。但这在Azure功能应用程序中是不可能的。那么阅读JSON响应对象的最佳方法是什么?
这是我到目前为止的尝试:
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 :(得分: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的部分组合。