如何在我的应用程序中调用Website API

时间:2017-01-03 07:43:04

标签: c# .net wpf winforms api

我刚决定开始学习API以及如何将其附加到标签上,即

事情是我一直在盯着GitHub& Codeproject但我找不到任何示例或开源项目来演示我想要学习的内容。

我想追加" id"从API到标签。

https://api.coinmarketcap.com/v1/ticker/ethereum/
https://coinmarketcap.com/api/

但我不知道如何初始化这个..我会称之为HttpWebRequest吗?

2 个答案:

答案 0 :(得分:3)

查找HttpClient。在System.Net.Http界面中。下面是一些示例代码,但您的确切实现当然取决于您所调用的API:

string completeUrl = String.Format("{0}{1}", urlbase,apiext); 
在这种情况下,

// apiext是对附加到url

的api方法的调用
HttpClient http = new HttpClient();
http.DefaultRequestHeaders.Add("Authorization", "Bearer " + AuthHeader);  // If you need authorization
http.DefaultRequestHeaders.Add("User-Agent","(myemail.com)");
var response = await http.GetAsync(completeUrl);
return await response.Content.ReadAsStringAsync();

答案 1 :(得分:3)

使用Newtonsoft.Json将Json结果反序列化为C#对象。调用API Uri并获取内容并使用JsonConvert反序列化为对象。

首先,导入Json库(确保从Package Manager安装)

using Newtonsoft.Json;

然后,使用以下代码检索股票代码的ID。

const string uri = @"https://api.coinmarketcap.com/v1/ticker/ethereum/";
var client = new WebClient();
var content = client.DownloadString(uri);

var results = JsonConvert.DeserializeObject<List<CoinApi>>(content);

label1.Text = results[0].Id; // ethereum

您需要指定要反序列化的模型类。

public class CoinApi
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Symbol { get; set; }
    // ...
}