`

获取实时汇率代码片段

阅读更多

获取实时汇率

通过yahoo 基金提供的url ,可查询实时汇率,例如

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20("USDCNY",%20"USDHKD")&env=store://datatables.org/alltableswithkeys&format=json

查询返回json如下:

{"query":{"count":2,"created":"2014-12-31T08:22:04Z","lang":"zh-CN","results":{"rate":[{"id":"USDCNY","Name":"USD to CNY","Rate":"6.1983","Date":"12/31/2014","Time":"3:22am","Ask":"6.1992","Bid":"6.1975"},{"id":"USDHKD","Name":"USD to HKD","Rate":"7.7552","Date":"12/31/2014","Time":"3:22am","Ask":"7.7554","Bid":"7.755"}]}}}

 查询其他币种只需要改变下查询条件即可。

查询其他币种到美元的代码如下:

public RateInfo getRate(final CurrencyCodeEnum currency) throws Exception {
		
		logger.info("--通过YQL到yahoo抓取实时汇率--");
		
		final RateInfo rateInfo = new RateInfo();
		try {
			Parser parser=new Parser();
			
			StringBuffer yqlUrl = new StringBuffer("http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in (\"");
			yqlUrl.append(StringUtils.upperCase(currency.toString())).append("USD");
			yqlUrl.append("\")&env=store://datatables.org/alltableswithkeys&format=json");
			parser.setURL(yqlUrl.toString());
			parser.parse(new NodeFilter() {
				
				/** Comment for <code>serialVersionUID</code> */
				private static final long serialVersionUID = 1L;

				@Override
				public boolean accept(Node arg0) {
					JSONObject obj = (JSONObject)JSONArray.parse(arg0.toHtml());
					JSONObject query =obj.getJSONObject("query");
					JSONObject results =query.getJSONObject("results");
					Assert.notNull(results);
					JSONObject rate =	results.getJSONObject("rate");
					Assert.notNull(rate);
					rateInfo.setCurrencyName(currency.toString());
					rateInfo.setBuyRate(rate.getString("Rate"));
					SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
					try {
						rateInfo.setPubTime(format.parse(rate.getString("Date")));
					} catch (ParseException e) {
						e.printStackTrace();
					}
					return false;
				}
			});
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		logger.info("--通过YQL到yahoo抓取实时汇率,返回汇率:{}--", rateInfo);
		
		return rateInfo;
		
	}

 

 

参考http://stackoverflow.com/questions/3139879/how-do-i-get-currency-exchange-rates-via-an-api-such-as-google-finance

 

分享到:
评论

相关推荐

    asp.net 获取银行货币汇率的代码

    在本代码示例中,因之前使用的外部服务连接无法使用,开发者决定通过解析网页来获取汇率信息。 2. 解析网页内容 代码中使用了正则表达式来从网页中提取汇率信息。这通常涉及到对HTML结构的理解和分析,以确定如何...

    利用yahoo汇率接口实现实时汇率转换示例 汇率转换器

    接下来,我们将基于给定的代码片段详细解释如何实现这一功能: ```php function getExchangeRate($from_Currency, $to_Currency){ // 将货币符号进行URL编码 $amount = urlencode($amount); $from_Currency = ...

    本资源里面有很多通用的代码,比如软换汇率等等

    例如,通过获取实时汇率数据,结合内部计算逻辑,将一种货币值转换为另一种货币。这样的代码不仅简化了开发流程,也提高了应用的灵活性和准确性。 【ASP.NET基础知识】 ASP.NET是由微软开发的Web应用程序框架,...

    爬取招行外汇网站数据.pdf

    第三,使用正则表达式匹配特定的HTML代码片段。正则表达式是一种强大而灵活的文本处理工具,可以帮助我们从复杂的HTML代码中提取所需的信息。在项目中,正则表达式被用来匹配和它的结束标签,然后进一步提取标签和...

    java版直播间源码-Android-Currency-Converter:使用实时汇率的货币转换工具

    使用实时汇率的货币转换工具。 安装 演示 截图 接口服务 建筑学 此应用程序使用单个活动实现 MVVM 架构模式,并使用存储库获取本地或远程数据进行片段交换和数据缓存。 依赖图 内置 - 旨在以生命周期意识的方式存储...

    货币汇率样本:样本将monero利率从coingecko中拉出

    这些样本可能包含了使用不同编程语言(如C++)的代码片段,或者是处理汇率数据的脚本,供开发者学习和参考。 总结来说,这个项目涉及了利用Linux作为开发和执行环境,通过OpenSSL库和TLS协议确保数据抓取的安全性,...

    EX MONEY_exchange_

    Convertisseur_Objet.pas中的类可能负责处理货币汇率的获取和计算,这可能涉及到网络请求以获取实时汇率。Convertisseur_MainUI.pas则负责处理用户的交互,如点击按钮触发的兑换操作,并更新结果显示在界面上。 ...

    BOS开发典型示例代码.pdf

    在提供的代码片段中,有以下两种创建`BigDecimal`对象的方式: ```java BigDecimal amounts = new BigDecimal(String.valueOf(0.00)); ``` 这是将一个字符串转换为`BigDecimal`对象的方法。使用这种方式可以避免...

    提取网页内容示例

    下面是一个简单的Python爬虫代码片段,演示了上述过程: ```python import requests from bs4 import BeautifulSoup import pyodbc # 发送GET请求 url = "http://202.102.239.182/hl/llhlcx.asp" response = ...

    PyPI 官网下载 | coinlib-1.5.8-py3-none-any.whl

    以上代码片段展示了如何初始化CoinLib对象,并获取比特币的当前价格。实际应用中,可以根据需求调整参数,以满足各种复杂的数据需求。 总的来说,CoinLib是Python开发者处理数字货币相关任务时的一款强大工具。通过...

    dolar-loco:查看阿根廷美元官方报价 - Python Flask Scrape Data

    5. **模板引擎**:Flask支持使用模板引擎(如Jinja2),允许开发者使用模板语言编写动态HTML,其中可以包含Python代码片段,以便动态插入从网络爬虫获取的数据。 6. **部署与运行**:项目完成后,开发者可能会将...

    HTML Data Ripper-开源

    例如,它可能包含了如何设置HTTP请求,如何解析HTML响应,以及如何定位和提取所需数据的代码片段。 另一个文件 "uk" 可能是一个特定的配置文件或者数据文件,可能与某个国家(如英国)的特定数据源或格式有关,或者...

    毕业设计基于PyQt5+Python开发的对话机器人项目源码+项目说明.zip

    该编辑器也集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax high lighting),可定制的热键绑定(customizable keyboard bindings),括号匹配(bracket matching)以及代码片段收集(snippets)。...

    php 计算UPS运费 ( UPS shipping cost )

    这些文件可能包含了设置SOAP客户端、构造请求参数、发送请求、处理响应等关键步骤的代码片段。通过阅读和分析这些文件,可以深入理解如何在实际项目中集成UPS运费计算功能。 总的来说,理解和应用“php 计算UPS运费...

    CurrencyExchange:帮助您兑换货币的应用程序

    2. **实时汇率获取**:为了提供准确的汇率,"CurrencyExchange"可能使用API(Application Programming Interface)从第三方服务提供商(如Open Exchange Rates或Fixer.io)获取最新的汇率数据。JavaScript负责发起...

    conversordemoedassuafatura:#ImersãoDevda Alura的Condevers de moedas desenvolvido para a semana

    可能使用的JavaScript库或API包括国际货币转换API(如Open Exchange Rates或Exchange Rates API),以便实时获取汇率。 4. **事件监听**:在JavaScript中,需要添加事件监听器到按钮元素,以便在用户点击时执行转换...

    paypal接网页支付资源

    在提供的“paypal网页支付操作流程”文件中,很可能会包含以上环节的具体指导,包括API调用示例、代码片段以及配置参数说明。开发者应当仔细阅读这份文档,以确保顺利集成PayPal支付功能到自己的网站。 总结来说,...

    在线工具箱V2.0 带后台源码(100+工具)

    5. **开发工具**:如前端框架预览、HTML/CSS/JS在线编辑器、代码片段管理等。 6. **数据转换**:如单位转换、日期时间格式转换、JSON到XML转换等。 7. **学习资源**:如编程教程、算法练习、编程题库等。 8. **生活...

    证券跌幅情况计算方法pyhon可视化

    下面是一些具体的Python代码片段,用于展示如何实现上述的数据处理、分析和可视化工作。 ```python import pandas as pd import pymysql import matplotlib.pyplot as plt # 数据连接 conn = pymysql.connect(host...

    Conversor-de-Moedas:第一个沉浸式项目

    【描述】该项目描述指出,这是一个在CodePen.io平台上创建的代码片段(Pen),它是一个在线的代码编辑器和社区,开发者可以在这里分享和测试他们的前端代码。货币转换器的实现,通常涉及到用户界面设计以及数据处理...

Global site tag (gtag.js) - Google Analytics