`
wuhuizhong
  • 浏览: 684360 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

汇率数据

 
阅读更多

 

外汇-人民币即时报价 WEB 服务
http://webservice.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx
即时外汇汇率数据 WEB 服务
http://webservice.webxml.com.cn/WebServices/ExchangeRateWebService.asmx

 

ruby中调用webservice

$ gem install savon -v 0.9.1

require "savon"

# create a client for your SOAP service
client = Savon::Client.new("http://webservice.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?wsdl")

client.wsdl.soap_actions
Retrieving WSDL from: http://webservice.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?wsdl
HTTPI executes HTTP GET using the net_http adapter
 => [:get_forex_rmb_rate, :get_forex_rmb_rate_pro] 

# execute a SOAP request to call the "getUser" action
response = client.request(:get_forex_rmb_rate) 

response.to_hash[:get_forex_rmb_rate_response][:get_forex_rmb_rate_result][:diffgram][:get_forex_rmb_rate][:forex_rmb_rate].each do|r|
  #r.each {|k,v|puts "#{k}: #{v}"}
  if r[:base_price] then puts "#{r[:symbol]} : #{r[:base_price]}" end
end

 

A Rails 3 app to test implementation of the SAVON gem in rails to handle SOAP calls

https://github.com/veldtmana/SOAPTest

 

 

Retrieve currency exchange rates from Yahoo! Finance.

https://github.com/scottbarr/yahoo_currency

使用此Gem時出現以下錯誤:

Error message:
superclass mismatch for class ExchangeRate

原因:

此Gem中有class ExchangeRate,

而app/model中有

class ExchangeRate < ActiveRecord::Base

兩處的class ExchangeRate 發生了衝突.

 

解決方法:

將/app/model中的class ExchangeRate改名.

 

 

Ruby Money::Bank interface for the Google Currency exchange data

https://github.com/RubyMoney/google_currency

 

 

每日8:00讀取匯率資料並儲存到Table中:

$ 
gem install whenever

soap.rake:

# encoding: utf-8
require 'savon'
require 'yahoo_currency'
def rmb_rate
  db = Sequel.connect('oracle://mis:password@172.18.60.39:1521/test')
  # create a client for your SOAP service
  client = Savon::Client.new("http://webservice.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?wsdl")

  # execute a SOAP request to call the "getUser" action
  response = client.request(:get_forex_rmb_rate)

  response.to_hash[:get_forex_rmb_rate_response][:get_forex_rmb_rate_result][:diffgram][:get_forex_rmb_rate][:forex_rmb_rate].each do|r|
    #r.each {|k,v|puts "#{k}: #{v}"}
    if r[:base_price] then
      #puts "#{r[:symbol]} : #{r[:base_price]}"
      #WorldCur.find(r[:symbol]).update_attribute(:whpj, r[:base_price])
      db[:world_curs].filter('code = ?', r[:symbol]).update(:boc_whpj => r[:base_price], :boc_at => Time.new)
    end
  end
end

def yahoo_rate
  db = Sequel.connect('oracle://mis:password@172.18.60.39:1521/test')
  sql = 'select t.code from world_curs t'
  db[sql].each do |r|
    #puts r[:code]
    exchange_rate = YahooCurrency.get_rate!(r[:code], "CNY")
    db[:world_curs].filter('code = ?', r[:code]).update(:yahoo_rate => exchange_rate.rate, :yahoo_at => exchange_rate.timestamp)
  end
end

namespace :soap do
  desc "RMB Rate"
  task :rmb_rate do
    rmb_rate
  end

  desc "Yahoo Rate"
  task :yahoo_rate do
    yahoo_rate
  end
end

 

schedule.rb

set :output, "#{path}/log/whenever.log"
job_type :rake_no_env, "cd :path && rake :task :output"

every 1.day,:at=>'08:00am' do
  rake_no_env "soap:rmb_rate"
  rake_no_env "soap:yahoo_rate"
end
 

 

 

 

分享到:
评论
3 楼 zaikai 2011-10-18  
转为hash然后再写代码解析是吗?谢谢你百忙之中解答我的问题
2 楼 wuhuizhong 2011-10-18  
用to_hash將XML转换为hash.
1 楼 zaikai 2011-10-18  
我想请问下,webservice返回过来的XML怎么解析呢?是否是什么工具来解析的?
我是用sorp4r来调用XML的,虽然都说savon比它好,但是sorp4r生成的XML方法文件
看起来比较明确。

相关推荐

    VBA网页数据提取(汇率数据)

    自动提取http://www.x-rates.com/中的汇率数据

    中国银行_汇率数据_1225_Rmb_Krw

    中国银行,汇率数据,目前数据止于2010-12-25,一年的汇率数据统计,来源于中国银行官网。

    RMB汇率数据集.xls

    RMB汇率数据集.xls

    汇率同步,实现主要国际货币的汇率数据

    在IT行业中,汇率同步是一个关键的领域,尤其对于金融、国际贸易和跨境电商等企业而言,实时准确的汇率数据是业务运营的基础。"汇率同步"这个功能的实现涉及到多个技术点,包括数据获取、处理、存储以及展示等多个...

    中国银行_汇率数据_1225

    中国银行的汇率数据,目前数据收集到2010-12-25,前至一年,数据全部来自中国银行。

    即时外汇汇率数据 vb.net

    在VB.NET编程环境中,开发一个即时外汇汇率数据的应用是一个常见的任务,这有助于金融专业人士和交易者获取最新的货币汇率信息。本项目"即时外汇汇率数据"是基于.NET Framework 2.0构建的,这意味着它需要相应的运行...

    2005-2018人民币汇率数据(IMF)日数据.xls

    2005-2018美元兑人民币汇率日数据,来自IMF,如题如题如题!!

    1985-2019年人民币-美元-日元-港元-欧元汇率数据

    1985-2019年人民币-美元-日元-港元-欧元汇率数据 汇率又称外汇利率、外 汇汇率或外汇行市,指的是两种货币之间兑换的比率,亦可视为一个国家的货币对另一种货 币的价值。具体是指一国货币与另一国货币的比率或比价,...

    1914-2024.2全球各国美元汇率数据-月度均值年度均值

    1914-2024.2全球各国美元汇率数据-月度均值年度均值 1、数据说明: 从 长期看,汇率问题是一国货币对外保持币值稳定的核心议题;从短期看,汇率则被视为微观 金融市场安全的核心观测指标,均对一国宏观经济有重要...

    【BP预测】基于模拟退火算法优化BP神经网络实现汇率数据预测附matlab代码 上传.zip

    该压缩包文件主要涉及到的是利用模拟退火算法优化BP(Backpropagation)神经网络来预测汇率数据,并且提供了相应的MATLAB代码实现。MATLAB是一种广泛应用于科学计算、数据分析和工程应用的强大工具,尤其在数值计算...

    中国人民币基准汇率(日度数据,1996-2021年)

    基准汇率是本币与对外经济交往中最常用的基本外币之间的汇率,各国一般都以美元为基本外币来确定基准汇率。 2006年8月以前我国基准汇率包括四种:人民币...整理好的汇率数据 辛苦收集整理所得,真实有效,请勿外传!

    基于java开发的货币汇率查询小程序

    - **集合框架**:用于存储和处理汇率数据,可能使用ArrayList或HashMap等数据结构。 - **异常处理**:在网络请求和数据解析过程中可能出现异常,需要通过try-catch语句进行捕获和处理。 2. **网络请求**: - **...

    imf-exchangerates:来自IMF的汇率数据集。 请谨慎使用,因为必须进行一些重新处理

    此简单的抓取工具创建了168个国家/地区的历史货币对美元汇率的数据集。 数据来自 。 这款刮板在格林尼治标准时间上午5点在Github Actions上运行。 您可以在此存储库的gh-pages分支中找到数据,也可以在以下位置...

    抓取中国银行汇率信息.txt

    抓取中国银行汇率信息

    全球兑美元汇率数据集(1914.2024.2).xlsx

    数据名称:全球各国汇率、短长期、政策利率数据 数据范围:全球国家 样本数量:76403条 数据年份:1914-2024.3 数据整理:自主整理 数据说明:包含兑美元汇率、短期利率、长期利率、政策利率 更新时间:2024年3月

    PHP获取基础汇率(实时版)

    例如,将最近获取的汇率数据保存在文件或数据库中,下次请求时先检查缓存,如果缓存数据未过期,则直接返回,否则再向API发送请求。 6. **错误处理**:在"rate.php"中,开发者还会添加错误处理代码,以应对API请求...

    HTML 汇率换算源码.zip

    在这个应用中,JavaScript 将被用来处理用户输入、实时获取汇率数据、执行计算以及更新显示结果。 3. **AJAX 实时数据更新**: - AJAX(Asynchronous JavaScript and XML)技术用于在不刷新整个页面的情况下与...

    汇率助手小程序

    通过接入聚合数据的API,汇率助手小程序能够获取到最新的汇率数据,包括但不限于常见的美元、欧元、日元、人民币等主流货币,以及一些小众国家的货币汇率。用户可以在小程序中输入需要转换的金额和货币类型,即可...

Global site tag (gtag.js) - Google Analytics