如何在ASP.NET中获得货币汇率 [英] How to get currency exchange rate in ASP.NET

查看:101
本文介绍了如何在ASP.NET中获得货币汇率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是dotnet平台的新手......我想知道asp.net中货币兑换率的代码。可以帮助我吗?



我尝试了什么:



这是网络服务代码..它会抛出错误输入字符串格式不正确.. 。或者建议使用不同的代码。



hi I'm new to dotnet platform...I want to know the code for currency exchange rate in asp.net..can any one help me?

What I have tried:

this is web service code..It throws error input string is not in the correct format...or else suggest the different code.

namespace Currency_Exchange
{
    /// <summary>
    /// Summary description for WebService
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class WebService : System.Web.Services.WebService
    {

        [WebMethod]
        public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
        {
            WebClient web = new WebClient();
            string url = string.Format("https://www.google.com/finance/converter?fromCurrency={0}&toCurrency={1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);
            string response = web.DownloadString(url);
            Regex regex = new Regex(@":(?<rhs>.+?),");
            string[] arrDigits = regex.Split(response);
            string rate = arrDigits[3];
            return rate;
        }
    }
}

推荐答案

问题可能在于构建URL的方式

The problem may lay in the way you build the URL
string url = string.Format("https://www.google.com/finance/converter?fromCurrency={0}&toCurrency={1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);



你有金额作为第三个值,但在哪里 {2}


You have amount as third value, but where is {2} ?


有趣的是,我无法弄清楚你是怎么得到的工作的代码。有几个问题,



1.缺少金额参数,@ppolymorphe也提到

2. toCurrency应该是

3. fromCurrency应该来自

4.我猜测正则表达式是从转换器中提取输出?



这是我的代码。

Interesting, I can't figure out how you get the code to work. There are several issues,

1. Missing amount parameter , also mentioned by @ppolymorphe
2. the toCurrency should be to
3. the fromCurrency should be from
4. I'm guessing the regular expression is to extract the output from from converter?

Here is my code.
string url = string.Format("https://www.google.com/finance/converter?from={0}&to={1}&a={2}", "AED", "ANG", 1);
            string response = web.DownloadString(url);
            Regex regex = new Regex("<span class=bld>(.*?)</span>");

            var result = regex.Match(response).Groups[1].Value;



输出:0.4874 ANG



这是HTML标记来自Google转换器,以防你想知道我如何使用正则表达式。




output: 0.4874 ANG

Here is the HTML markup from Google converter, in case you want to know how I come out with the regular expression.

<div id=currency_converter_result>1 AED = <span class=bld>0.4874 ANG</span>





这里有一些例子:

https://www.google.com/finance/converter?from=SGD&to=SKK&a=1

https:// www。 google.com/finance/converter?from=USD&to=CNY&a=100



以下是新的CurrencyConversion方法。



Here are some example :
https://www.google.com/finance/converter?from=SGD&to=SKK&a=1
https://www.google.com/finance/converter?from=USD&to=CNY&a=100

Here is the new CurrencyConversion method will look like.

public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
        {
            WebClient web = new WebClient();
            string url = string.Format("https://www.google.com/finance/converter?from={0}&to={1}&a={2}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);
            string response = web.DownloadString(url);
            Regex regex = new Regex("<span class=bld>(.*?)</span>");

            var result = regex.Match(response).Groups[1].Value;
            return result;
        }


根据您在此处发布的最新代码,我认为代码应该是这样的。



aspx页面

Here is what I think the code should look like based on the latest code you posted here.

The aspx page
<asp:Label ID="lbl_Amount" runat="server" Text="Amount"></asp:Label>
<asp:TextBox ID="txt_amount" runat="server"></asp:TextBox>

<asp:Label ID="lbl_FromCurrency" runat="server" Text="From Currency"></asp:Label>
<asp:TextBox ID="txt_fromCurrency" runat="server"></asp:TextBox>

<asp:Label ID="lbl_toCurrency" runat="server" Text="To Currency"></asp:Label>
<asp:TextBox ID="txt_ToCurrency" runat="server"></asp:TextBox>
<asp:Label ID="lbl_value" runat="server" Text=""></asp:Label>
<asp:Button ID="Btn_Convert" runat="server" Text="Convert" OnClick="Convert"/>

<asp:Label ID="lblResult" runat="server" Text=""></asp:Label>





.cs /代码背后



.cs/code behind

public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
        {
            WebClient web = new WebClient();
            string url = string.Format("https://www.google.com/finance/converter?from={0}&to={1}&a={2}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);
            string response = web.DownloadString(url);
            Regex regex = new Regex("<span class=bld>(.*?)</span>");

            var result = regex.Match(response).Groups[1].Value;
            return string.Format("{0} {1} = {2}", amount, fromCurrency, result);
        }

        protected void Convert(object sender, EventArgs e)
        {
            lblResult.Text = CurrencyConversion ( decimal.Parse(txt_amount.Text), txt_fromCurrency.Text, txt_ToCurrency.Text);
        }


这篇关于如何在ASP.NET中获得货币汇率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆