2013-10-24 73 views
0

我在控制器中使用带有以下数据的Web Api。从C#中的Web Api获取数据

public IEnumerable<string> Get() 
     { 
      return new string[] { "Item1", "Item2s", "Item3", "Item4", "Item5" }; 
     } 

我想从应用程序中的Web Api中获取此数据。我用这个代码从另一个控制器获取数据:

public IEnumerable<Items> GetItems() 
     { 
      return repository.GetItems(); 
     } 

上面显示控制器代码,可推动在网络API指定的项目列表。 如何更改以下代码以从字符串[]中获取数据?

HttpClient client = new HttpClient(); 
      HttpResponseMessage response = await client.GetAsync("http://localhost:1234/api/items"); 

      var items = new List<Items>(); 

      if (response.IsSuccessStatusCode) 
      { 
       var content = await response.Content.ReadAsStringAsync(); 

       // Parse 1 Product from the content 
       var ItemsSet= JsonConvert.DeserializeObject<dynamic>(content); 

       // Data from Api 
       var ItemData = new Items 
       (
       (string)ItemsSet[0], 
       (string)ItemsSet[1], 
       (string)ItemsSet[2], 
       (string)ItemsSet[3], 
       (string)ItemsSet[4] 


       ); 

       items.Add(ItemData); 
      } 

回答

0

这个怎么样:

HttpClient client = new HttpClient(); 
HttpResponseMessage response = await client.GetAsync("http://localhost:1234/api/items"); 

var Items = new List<Items>(); 

if (response.IsSuccessStatusCode) 
{ 
    IEnumerable<string> categories = await response.Content.ReadAsAsync<IEnumerable<string>>(); 

    var ItemData = new Items 
      (
       // Use this category list to initialize your Items 
      ); 

    items.Add(ItemData); 
} 
+0

这没有工作,还我做编辑的代码,我犯了一个错误。它应该是'items.Add(ItemData);' – Tester

+0

你用这段代码得到了什么错误信息? –

+0

几个因为我必须将数组值添加到'Items'对象。因此,'新列表();' – Tester