我刚刚决定开始学习 API 以及如何将其附加到标签。
问题是我一直在查看 GitHub 和 Codeproject,但我找不到任何示例或开源项目来演示我想学习的内容。
我想将 API 中的“id”附加到标签中。
https://api.coinmarketcap.com/v1/ticker/ethereum/
https://coinmarketcap.com/api/
但我不知道如何初始化它..我会叫我
HttpWebRequest
吗?
使用 Newtonsoft.Json 将 Json 结果反序列化为 C# 对象。调用 API Uri 并获取内容并使用
JsonConvert
反序列化为对象。
首先,导入 Json 库(确保从包管理器安装)
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; }
// ...
}
查找 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();