【问题标题】:Trying to read response from Web API call尝试从 Web API 调用读取响应
【发布时间】:2014-12-07 00:16:02
【问题描述】:

我正在尝试从 Web API 调用中读取我的员工列表,但出现错误。

using (var client = new HttpClient())
{
   client.BaseAddress = new Uri("http://myApiUrl");
   client.DefaultRequestHeaders.Accept.Clear();
   client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

   HttpResponseMessage response = await client.GetAsync("api/hr/employees");
   if (response.IsSuccessStatusCode)
   {
      List<Employee> employees = response.Content.ReadAsAsync(IEnumerable<Employee>).Result;
   }
}

我目前遇到的错误是: System.Net.Http.HttpContent 不包含 ReadAsAsync 的定义...

我做错了什么?

【问题讨论】:

  • > ReadAsAsync(IEnumerable&lt;Employee&gt;):等等,你想在这里做什么?那是无效的语法。你的意思是使用泛型? typeof?

标签: asp.net-mvc asp.net-web-api2


【解决方案1】:

ReadAsAsync 不是 HttpClient 类的方法。如果您想读取数据并将其转换为您可以使用的对象:

HttpResponseMessage response = await client.GetAsync("api/hr/employees");
if (response.IsSuccessStatusCode)
{
    var result= await response.Content.ReadAsStringAsync();
    List<Employee> employees = JsonConvert.DeserializeObject<Employee>(result);
}

【讨论】:

    【解决方案2】:

    试试

    List<Employee> employees = response.Content.ReadAsAsync<IEnumerable<Employee>>().Result;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多