拨打休息电话以获取项目总数

时间:2014-05-22 21:36:53

标签: c# asp.net-web-api

我是构建REST服务的新手,并且正在跟随this guide在c#中创建.net客户端以调用接受REST调用的服务。

我可以从我的代码中获取请求以获取单个项目,例如:

api/products/1 

使用此代码:

HttpResponseMessage response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
    Product product = await response.Content.ReadAsAsync<Product>();
    Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category);
}

我的目标是不仅列出1个项目,而是列出每个项目。我知道在URI中我通常可以输入

api/products

获取完整的项目列表,但在上面的代码中,我无法将所有这些项目存储在响应变量中。

所以我的问题可能是两部分:

  1. HttpResponseMessage可以是一个数组吗?我可以打电话给api /产品并让它以这种方式工作吗?
  2. 有没有一种方法我可以要求它返回项目总数,以便我以后可以使用它?

1 个答案:

答案 0 :(得分:1)

如果api/products端点返回(例如)Product元素的JSON数组,那么您可以简单地执行此操作:

HttpResponseMessage response = await client.GetAsync("api/products");
if (response.IsSuccessStatusCode)
{
    List<Product> products = await response.Content.ReadAsAsync<List<Product>>();
    foreach (var product in products)
    {
        Console.WriteLine("{0}\t${1}\t{2}",
            product.Name, product.Price, product.Category);
    }
}