我刚决定开始学习API以及如何将其附加到标签上,即
事情是我一直在盯着GitHub& Codeproject但我找不到任何示例或开源项目来演示我想要学习的内容。
我想追加" id"从API到标签。
https://api.coinmarketcap.com/v1/ticker/ethereum/
https://coinmarketcap.com/api/
但我不知道如何初始化这个..我会称之为HttpWebRequest吗?
答案 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; }
// ...
}