所以我想写一个BTC转换器应用程序,我可以在https://blockchain.info/tobtc?currency=GBP&value=1获得1英镑的价值 并且在URL中将GBP更改为USD会自然地将其更改为USD,我想使用它并将数据解析为变量然后将其用作正常值。但我希望用户能够输入他们的货币并更改网址,然后以一加拿大元获取金额。如何将GBP用作变量,然后根据用户输入进行更改。 我正在考虑一个最受欢迎的电流下拉框,但我根本不知道如何使用它。
善待,我是一个菜鸟,并试图制作我的第一个有用的应用程序
答案 0 :(得分:0)
以下是如何获取不同货币价值的简单示例:
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace ConsoleApp5
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetValueAsync("GBP").Result);
Console.WriteLine(GetValueAsync("USD").Result);
Console.WriteLine(GetValueAsync("RUB").Result);
}
public static async Task<string> GetValueAsync(string curr)
{
using (HttpClient client = new HttpClient())
{
var responseString = await client.GetStringAsync("https://blockchain.info/tobtc?currency="+curr+"&value=1");
return responseString;
}
}
}
}
这里
client.GetStringAsync("https://blockchain.info/tobtc?currency="+curr+"&value=1");
通过提供的URL发送异步http get请求并将响应作为字符串返回
您要使用的网站只返回值作为字符串,这就是为什么这样做
由于请求是异步的,我们必须使用await
,以便我们以字符串形式获得响应。
如果你想在WinForm中这样做。这是一个例子。假设您已经输入TextBox
,Label
显示结果,Button
获取结果。只需从工具箱中下拉即可将其添加到表单中。
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void button1_ClickAsync(object sender, EventArgs e)
{
string curr = textBox1.Text;
if (!string.IsNullOrEmpty(curr))
{
label2.Text = "waiting for response";
var res = await GetValueAsync(curr);
label2.Text = res;
}
}
public async Task<string> GetValueAsync(string curr)
{
var responseString = string.Empty;
using (HttpClient client = new HttpClient())
{
string reqString = "https://blockchain.info/tobtc?currency=" + curr + "&value=1";
responseString = await client.GetStringAsync(reqString);
}
return responseString;
}
}
}
以下是Win Forms link
的完整解决方案以下是有用的链接:
MSDN HttpClient GetStringAsync
WinForm with Async Methods
MSDN C# String Concatenation
MSDN WinForms Click Event
以下是如何执行此操作的录音: