2016-03-05 39 views
-2

我是C#的新手,這是我第一次從api獲取數據。我想知道如何獲取或調用在此api請求中收集的數據(MakeRequest)。最好將數據分配給公共字符串。來自api請求的數據採用json格式。如何從API請求中獲取數據?

using System; 
using System.Net.Http.Headers; 
using System.Text; 
using System.Net.Http; 
using System.Web; 

namespace CSHttpClientSample 
{ 
    public partial class Form1 : Form 
    {   
     public async void MakeRequest() 
     { 
      var client = new HttpClient(); 
      var queryString = HttpUtility.ParseQueryString(string.Empty); 

      // Request headers 
      client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}"); 

      // Request parameters 
      queryString["seasonId"] = "{string}"; 
      var uri = "https://www.haloapi.com/stats/{title}/servicerecords/arena?players={players}&" + queryString; 

      var response = await client.GetAsync(uri); 
     } 
    } 
} 
+0

首先,'async void'不是一個好主意。第二:你的代碼有什麼問題?你想實現什麼?你試過什麼? – Waescher

+0

我希望從該api請求中收集json數據。 –

+0

所以你的respose可能是你下載的JSON字符串。你有它。所以如果你願意的話,你可以「收集」它。但我想你想要將該JSON字符串反序列化爲任何業務對象,對吧? – Waescher

回答

1

因此,如果調用成功,你應該有你的JSON字符串你在最後一行分配response變量返回。

使用您的調試器並檢查該變量。如果您查看您的GetAsync()方法(Link)的MSDN文檔,您可以很容易地發現該變量的類型爲HttpResponseMessage。本課有一個頁面here告訴你,有一個屬性Content

這是你的JSON字符串,現在可能會出現你必須做一些反序列化的部分。玩的開心。