使用httpclient在c#中获取API数据

本文关键字:获取 API 数据 httpclient 使用 | 更新日期: 2023-09-27 18:17:50

我只是从api开始,并且完全披露…我复制并粘贴了这个答案:我如何使用c#调用REST api ?但很明显,我几乎迷路了。

我想从简单的开始,只是从dropbox 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"
}

使用httpclient在c#中获取API数据

您可能需要将Bearer令牌添加到请求中的Headers

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