从互联网上获取汇率



我想做的是从互联网上获取汇率。经过长时间的研究,我发现了这个功能。

protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
        string xmlResult = null;
        string url;
        url = "http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=" + TextBox1.Text + "&ToCurrency=" + TextBox2.Text + "";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader resStream = new StreamReader(response.GetResponseStream());
        XmlDocument doc = new XmlDocument();
        xmlResult = resStream.ReadToEnd();
        doc.LoadXml(xmlResult);
        Label1.Text = "Current Exchange Rate for " + TextBox1.Text.ToUpper() + " ---> " + TextBox2.Text.ToUpper() + " value " + doc.GetElementsByTagName("double").Item(0).InnerText;
        }
        catch(Exception ex)
        {
            Label1.Text="Not a valid Currency or Try again later";
        }
    } 

http://www.webservicex.net/不支持AZN(阿塞拜疆马纳特)兑换美元,反之亦然。我想做的是,如果可能的话,连接到互联网并获得价格。否则,使用编写的函数进行转换(我已经编写了)。

你有什么建议,我如何获得美元和AZN的当前汇率(或者只发送美元或AZN来获得结果)?是否可以从Windows窗体应用程序内部获取它?

这个简单的算法将在键值对列表中为您提供所需的一切。

public static List<KeyValuePair<string, decimal>> GetCurrencyListFromWeb(out DateTime   currencyDate)
    {
        List<KeyValuePair<string, decimal>> returnList = new List<KeyValuePair<string, decimal>>();
        string date = string.Empty;
        using (XmlReader xmlr = XmlReader.Create(@"http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"))
        {
            xmlr.ReadToFollowing("Cube");
            while (xmlr.Read())
            {
                if (xmlr.NodeType != XmlNodeType.Element) continue;
                if (xmlr.GetAttribute("time") != null)
                {
                    date = xmlr.GetAttribute("time");
                }
                else returnList.Add(new KeyValuePair<string, decimal>(xmlr.GetAttribute("currency"), decimal.Parse(xmlr.GetAttribute("rate"), CultureInfo.InvariantCulture)));
            }
            currencyDate = DateTime.Parse(date);
        }
        returnList.Add(new KeyValuePair<string, decimal>("EUR", 1));
        return returnList;
    }

但是http://www.webservicex.net/不支持AZN(阿塞拜疆马纳特)兑换美元,反之亦然

那么呢?计算通过另一种货币的交叉汇率。

AZN很可能是一种交易量或风险敞口非常有限的边缘货币。询问OANDA(http://www.oanda.com)我收到一些报价,包括美元兑换(http://www.oanda.com/currency/cross-rate/result?quotes=GBP&报价=欧元;报价=日元;报价=瑞士法郎;报价=美元&引号=AZN&go=获取+my+表格+%3E)

很可能,webservicesx.net只是没有主要货币之外的东西的价格。

使用其他引号。FXCM和Oanda可能有API,你可以订阅-很可能是有价格的。

或者,你可以看看你是否可以计算从AZN到另一种货币的交叉,如果有价格的话,从那里到美元。这在外汇交易中经常发生,尽管令人愉快,但美元大多不需要交叉汇率计算。

是否可以从Windows窗体应用程序内部获取它?

当你在互联网上询问API时,无论它是winforms、webforms、powershell还是vb脚本,API是否支持它,你使用的UI技术都是无关紧要的。

也许这会有所帮助。我在谷歌上搜索过,确实看到了一些替代的网络服务,但我看到的那些服务不支持AZN。但我没有花太多时间做这件事,那是你的工作。我确实发现了这个:
http://www.transfermate.com/en/free_currency_converter.asp

你可以添加到你的应用程序中,也许可以添加一个浏览器控件并将其嵌入到自定义页面上,然后将结果检索到你的主表单中。但最终,你自己回答了这个问题:

否则,使用编写的函数进行转换(我已经编写了)。

如果你找不到已经存在的解决方案,那就自己构建。

也可以尝试:https://developers.google.com/finance/和http://openexchangerates.org/

最新更新