如何将HttpClient's PostAsJsonAsync()的输出转换为用户定义的对象列表
本文关键字:转换 输出 用户 列表 对象 定义 HttpClient PostAsJsonAsync | 更新日期: 2023-09-27 18:05:07
我正在制作System.Net.Http.HttpClient
类调用终点。该端点需要特定的输入,并返回类型为Employee ( List<Employee>)
的用户定义对象的List。
这是我正在使用的代码。
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:7792/");
client.DefaultRequestHeaders.Accept.Clear();
FilterModel payload = new FilterModel();
payload.employeeId= 97050001;
payload.Level= "Manager";
// New code:
HttpResponseMessage response = client.PostAsJsonAsync("api/employee", payload).Result;
if (response.IsSuccessStatusCode)
{
var employee= response.Content.ReadAsStringAsync();
//HOW DO I CONVERT THE OUTPUT INTO LIST<EMPLOYEE>?
Console.Write("---DONE---");
}
Console.ReadKey();
}
我知道这不是调用结束点的理想方式&我必须使用async await。我只需要数据,调用可以是同步或异步&我想将结果强制转换为List。
目前我得到一个字符串,我需要反序列化。请帮忙
可以这样使用JsonConvert:
var jsonString= response.Content.ReadAsStringAsync();
var employees = JsonConvert.DeserializeObject<List<Employee>>(jsonString);
希望这有帮助!
更新2020:使用如下内容:
return await response.Content.ReadFromJsonAsync<List<Employee>>();