如何从URL获取价值/变量?

时间:2017-07-10 08:56:56

标签: c# bitcoin

所以我想写一个BTC转换器应用程序,我可以在https://blockchain.info/tobtc?currency=GBP&value=1获得1英镑的价值 并且在URL中将GBP更改为USD会自然地将其更改为USD,我想使用它并将数据解析为变量然后将其用作正常值。但我希望用户能够输入他们的货币并更改网址,然后以一加拿大元获取金额。如何将GBP用作变量,然后根据用户输入进行更改。 我正在考虑一个最受欢迎的电流下拉框,但我根本不知道如何使用它。

善待,我是一个菜鸟,并试图制作我的第一个有用的应用程序

1 个答案:

答案 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中这样做。这是一个例子。假设您已经输入TextBoxLabel显示结果,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

以下是如何执行此操作的录音:

Recording