通过Yahoo API 获取实时货币汇率

参考链接:http://raynix.info/archives/2216

上面链接是PHP写的,给的接口是 :http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=GBPCNY=x
可以复制粘贴到浏览器 会返回一个文件为 : quotes.csv
得到数据为:”GBPCNY=X”,9.5284,”2/10/2015”,”3:15am”
链接中的几个参数可以修改, “.csv” 可以换成 .html , .txt 等 改变返回文件类型,
其中 s= BGPCNY = x BGP(英镑) 为原始币种 CNY(人民币)为目标币种 可以动态替换 从而得到不同货币转换汇率, s= 和 =x 不能缺少。
将结果截取得到汇率的代码。

 public static String getCurrencyRate(String result) {
        String rate = null;
        String pointPrefix = "(\\-|\\+){0,1}\\d*\\.\\d+";
        String pointSuffix = "(\\-|\\+){0,1}\\d+\\.";
        if (result.isEmpty() || result == null) {
            rate = NUL;
        } else {
            String[] str = result.trim().split(",");
            for (int i = 0; i < str.length; i++) {
                if (str[i].matches(pointSuffix) || str[i].matches(pointPrefix)) {
                    rate = str[i];
                }
            }
        }
        return rate;
    }

除了Yahoo 的接口 还可以使用 : K780 API
参考链接 :http://www.k780.com/api/finance.rate
当然它也是来源于 Yahoo 财经
请求示例(Json)
http://api.k780.com:88/app=finance.rate&scur=EUR&tcur=CNY&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
请求返回结果是json 格式字符串 :
{“success”:”1”,”result”:{“status”:”ALREADY”,”scur”:”EUR”,”tcur”:”CNY”,”ratenm”:”欧元/人民币”,”rate”:”7.063038”,”update”:”2015-02-11 16:01:17”}}
其中请求链接中 scur 为原始货币,tcur 为目标货币,appley 为使用API凭证,sign为登陆密文 ,format为返回类型 可选xml.
在java中请求URL 可以使用java .net 包 中的相关类 :

URL url = new URL(URLStr);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);
            connection.setRequestProperty("User-Agent", "directclient");
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
            while ((inputLine = in.readLine()) != null) {
                backjsonBuffer.append(inputLine);
            }
            in.close();
            result = backjsonBuffer.toString();

通过json 解析的到相关 rate 值

对于以上两种方法, 经实践,

  • Yahoo 接口 请求 时间稍长,可能访问较多 会有拒绝访问情况。
  • K780 接口 相对较快,但限制请求次数 ,需要注册 。
    最近有在做获取汇率,特此记录,撰文不够严谨,如有其它好方法 希望不吝赐教。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
<option value="AED">United Arab Emirates Dirham (AED)</option> <option value="ANG">Netherlands Antillean Guilder (ANG)</option> <option value="ARS">Argentine Peso (ARS)</option> <option value="AUD">Australian Dollar (AUD)</option> <option value="BDT">Bangladeshi Taka (BDT)</option> <option value="BGN">Bulgarian Lev (BGN)</option> <option value="BHD">Bahraini Dinar (BHD)</option> <option value="BND">Brunei Dollar (BND)</option> <option value="BOB">Bolivian Boliviano (BOB)</option> <option value="BRL">Brazilian Real (BRL)</option> <option value="BWP">Botswanan Pula (BWP)</option> <option value="CAD">Canadian Dollar (CAD)</option> <option value="CHF">Swiss Franc (CHF)</option> <option value="CLP">Chilean Peso (CLP)</option> <option value="CNY">Chinese Yuan (CNY)</option> <option value="COP">Colombian Peso (COP)</option> <option value="CRC">Costa Rican Colón (CRC)</option> <option value="CZK">Czech Republic Koruna (CZK)</option> <option value="DKK">Danish Krone (DKK)</option> <option value="DOP">Dominican Peso (DOP)</option> <option value="DZD">Algerian Dinar (DZD)</option> <option value="EEK">Estonian Kroon (EEK)</option> <option value="EGP">Egyptian Pound (EGP)</option> <option value="EUR">Euro (EUR)</option> <option value="FJD">Fijian Dollar (FJD)</option> <option value="GBP">British Pound Sterling (GBP)</option> <option value="HKD">Hong Kong Dollar (HKD)</option> <option value="HNL">Honduran Lempira (HNL)</option> <option value="HRK">Croatian Kuna (HRK)</option> <option value="HUF">Hungarian Forint (HUF)</option> <option value="IDR">Indonesian Rupiah (IDR)</option> <option value="ILS">Israeli New Sheqel (ILS)</option> <option value="INR">Indian Rupee (INR)</option> <option value="JMD">Jamaican Dollar (JMD)</option> <option value="JOD">Jordanian Dinar (JOD)</option> <option value="JPY">Japanese Yen (JPY)</option> <option value="KES">Kenyan Shilling (KES)</option> <option value="KRW">South Korean Won (KRW)</option> <option value="KWD">Kuwaiti Dinar (KWD)</option> <option value="KYD">Cayman Islands Dollar (KYD)</option> <option value="KZT">Kazakhstani Tenge (KZT)</option> <option value="LBP">Lebanese Pound (LBP)</option> <option value="LKR">Sri Lankan Rupee (LKR)</option> <option value="LTL">Lithuanian Litas (LTL)</option> <option value="LVL">Latvian Lats (LVL)</option> <option value="MAD">Moroccan Dirham (MAD)</option> <option value="MDL">Moldovan Leu (MDL)</option> <option value="MKD">Macedonian Denar (MKD)</option> <option value="MUR">Mauritian Rupee (MUR)</option> <option value="MVR">Maldivian Rufiyaa (MVR)</option> <option value="MXN">Mexican Peso (MXN)</option> <option value="MYR">Malaysian Ringgit (MYR)</option> <option value="NAD">Namibian Dollar (NAD)</option> <option value="NGN">Nigerian Naira (NGN)</option> <option value="NIO">Nicaraguan Córdoba (NIO)</option> <option value="NOK">Norwegian Krone (NOK)</option> <option value="NPR">Nepalese Rupee (NPR)</option> <option value="NZD">New Zealand Dollar (NZD)</option> <option value="OMR">Omani Rial (OMR)</option> <option value="PEN">Peruvian Nuevo Sol (PEN)</option> <option value="PGK">Papua New Guinean Kina (PGK)</option> <option value="PHP">Philippine Peso (PHP)</option> <option value="PKR">Pakistani Rupee (PKR)</option> <option value="PLN">Polish Zloty (PLN)</option> <option value="PYG">Paraguayan Guarani (PYG)</option> <option value="QAR">Qatari Rial (QAR)</option> <option value="RON">Romanian Leu (RON)</option> <option value="RSD">Serbian Dinar (RSD)</option> <option value="RUB">Russian Ruble (RUB)</option> <option value="SAR">Saudi Riyal (SAR)</option> <option value="SCR">Seychellois Rupee (SCR)</option> <option value="SEK">Swedish Krona (SEK)</option> <option value="SGD">Singapore Dollar (SGD)</option> <option value="SKK">Slovak Koruna (SKK)</option> <option value="SLL">Sierra Leonean Leone (SLL)</option>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值