如何在我的应用程序中调用网站 API [已关闭]

问题描述 投票:0回答:2

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

问题是我一直在查看 GitHub 和 Codeproject,但我找不到任何示例或开源项目来演示我想学习的内容。

我想将 API 中的“id”附加到标签中。

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

但我不知道如何初始化它..我会叫我

HttpWebRequest
吗?

c# .net wpf winforms
2个回答
3
投票

使用 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; }
    // ...
}

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();
© www.soinside.com 2019 - 2024. All rights reserved.