2015-10-15 38 views
1

我剛開始使用API​​,並且完全公開...我從這個答案複製並粘貼:How do I make calls to a REST api using c#? 但是很明顯,我幾乎失去了。用httpclient獲取C#中的API數據

我想通過從保險箱API獲取信息開始簡單。

我插入了api URL,但我無法弄清楚如何傳入身份驗證令牌或帳戶ID。

private const string URL = "https://api.dropboxapi.com/2-beta-2/users/get_current_account"; 
     private const string urlParameters = "access_token=xxxxxxxxxxxxx"; 

     static void Main(string[] args) 
     { 
      HttpClient client = new HttpClient(); 
      client.BaseAddress = new Uri(URL); 

      // Add an Accept header for JSON format. 
      client.DefaultRequestHeaders.Accept.Add(
      new MediaTypeWithQualityHeaderValue("application/json")); 

      // List data response. 
      HttpResponseMessage response = client.GetAsync(urlParameters).Result; // Blocking call! 
      if (response.IsSuccessStatusCode) 
      { 
       // Parse the response body. Blocking! 
       var dataObjects = response.Content.ReadAsAsync<IEnumerable<DataObject>>().Result; 
       foreach (var d in dataObjects) 
       { 
        Console.WriteLine("{0}", d.Name); 
        Console.ReadKey(); 
       } 
      } 

從Dropbox的HTTP請求應該是:

POST /2-beta-2/users/get_account 
Host: https://api.dropboxapi.com 
User-Agent: api-explorer-client 
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx 
Content-Type: application/json 

{ 
    "account_id": "dbid:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
} 
+0

您應該考慮使用HttpWebRequest的。這裏是一個例子:http://www.codeproject.com/Articles/18034/HttpWebRequest-Response-in-a-Nutshell-Part - 也檢查瞭解更多信息:http://stackoverflow.com/questions/ 4988286 /什麼-差是 - 有 - 和 - 的HttpWebRequest類,在網間的WebClient –

回答

0

你可能需要承載令牌添加到頭在請求

client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);