最近在做项目,涉及到实时汇率的获取,查了很多方法。下面写下自己获取实时汇率的心得,希望帮到有需要的人。

我使用的是聚合数据,免费的货币汇率API https://www.juhe.cn/docs/api/id/23 。

首先要注册用户,进行实名认证后,申请到免费的APPKEY ,就可以使用货币汇率API了。

人民币碑价:

接口地址:http://web.juhe.cn:8080/finance/exchange/rmbquot

返回格式:json

请求方式:get

请求示例:http://web.juhe.cn:8080/finance/exchange/rmbquot?key=您申请的APPKEY

接口备注:100外币兑人民币,更新时间2分钟,此汇率仅供参考,以中国银行各分行实际交易汇率为准,不构成投资建议。投资者据此买卖,风险自担

  名称 必填 类型 说明
  key String APP Key
  type int 两种格式(0或者1,默认为0)
  bank int

(0:工商银行,1:招商银行,2:建设银行,3:中国银行,4:交通银行,5:农业银行,默认为:中国银行)

自己写的Java例子:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.*;//注意:使用的是com.alibaba.fastjson.JSONArray ,不是net.sf.json.JSONObjec
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;public class CurrencyRate {public static final String DEF_CHATSET = "UTF-8";public static final int DEF_CONN_TIMEOUT = 30000;public static final int DEF_READ_TIMEOUT = 30000;public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";//配置您申请的APPKEYpublic static final String APPKEY ="**********************";static Double[] eRate = new Double[10];public static void main(String[] args) {String result1 =null;String url ="http://web.juhe.cn:8080/finance/exchange/rmbquot";//请求接口地址Map params = new HashMap();//请求参数params.put("key",APPKEY);//APP Keyparams.put("type","");//两种格式(0或者1,默认为0)try {result1 =net(url, params, "GET");//将字符串转化成JSON对象JSONObject object = JSONObject.parseObject(result1);//转化成JSON数组JSONArray resultList = object.getJSONArray("result");//取出JSON数组中的值for (int i=0; i<resultList.size();i++){// mBuyPri 是现钞买入价// USD美元JSONObject json = (JSONObject) resultList.get(i);String USD = json.getString("data1");System.out.println(USD);JSONObject rJson1 = (JSONObject) json.get("data1");eRate[1] = rJson1.getDouble("mBuyPri");System.out.println(eRate[1]);//EUP欧元String EUP = json.getString("data2");System.out.println(EUP);JSONObject rJson2 = (JSONObject) json.get("data2");eRate[2] = rJson2.getDouble("mBuyPri");System.out.println(eRate[2]);// HKD港币String HKD = json.getString("data3");System.out.println(HKD);JSONObject rJson3 = (JSONObject) json.get("data3");eRate[3] = rJson3.getDouble("mBuyPri");System.out.println(eRate[3]);//JPY日元String JPY = json.getString("data4");System.out.println(JPY);JSONObject rJson4 = (JSONObject) json.get("data4");eRate[4] = rJson4.getDouble("mBuyPri");System.out.println(eRate[4]);// GBP英镑String GBP = json.getString("data5");System.out.println(GBP);JSONObject rJson5 = (JSONObject) json.get("data5");eRate[5] = rJson5.getDouble("mBuyPri");System.out.println(eRate[5]);// THB泰国铢String THB = json.getString("data8");System.out.println(THB);JSONObject rJson6 = (JSONObject) json.get("data8");eRate[6] = rJson6.getDouble("mBuyPri");System.out.println(eRate[6]);// MOP澳门元String MOP = json.getString("data18");System.out.println(MOP);JSONObject rJson7 = (JSONObject) json.get("data18");eRate[7] = rJson7.getDouble("mBuyPri");System.out.println(eRate[7]);//KRW韩国元String KRW = json.getString("data21");System.out.println(KRW);JSONObject rJson8 = (JSONObject) json.get("data21");eRate[8] = rJson8.getDouble("mBuyPri");System.out.println(eRate[8]);}} catch (Exception e) {e.printStackTrace();}}/**** @param strUrl 请求地址* @param params 请求参数* @param method 请求方法* @return  网络请求字符串* @throws Exception*/public static String net(String strUrl, Map params,String method) throws Exception {HttpURLConnection conn = null;BufferedReader reader = null;String rs = null;try {StringBuffer sb = new StringBuffer();if(method==null || method.equals("GET")){strUrl = strUrl+"?"+urlencode(params);}URL url = new URL(strUrl);conn = (HttpURLConnection) url.openConnection();if(method==null || method.equals("GET")){conn.setRequestMethod("GET");}else{conn.setRequestMethod("POST");conn.setDoOutput(true);}conn.setRequestProperty("User-agent", userAgent);conn.setUseCaches(false);conn.setConnectTimeout(DEF_CONN_TIMEOUT);conn.setReadTimeout(DEF_READ_TIMEOUT);conn.setInstanceFollowRedirects(false);conn.connect();if (params!= null && method.equals("POST")) {try (DataOutputStream out = new DataOutputStream(conn.getOutputStream())) {out.writeBytes(urlencode(params));}}InputStream is = conn.getInputStream();reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));String strRead = null;while ((strRead = reader.readLine()) != null) {sb.append(strRead);}rs = sb.toString();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {reader.close();}if (conn != null) {conn.disconnect();}}return rs;}//将map型转为请求参数型public static String urlencode(Map<String,Object>data) {StringBuilder sb = new StringBuilder();for (Map.Entry i : data.entrySet()) {try {sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}}

输出结果:

JSON返回示例:

{
"resultcode":"200",
"reason":"SUCCESSED!",
"result":[{"data1":{"name":"英镑",                 /*货币名称*/"fBuyPri":"1001.430",           /*现汇买入价*/"mBuyPri":"970.510",           /*现钞买入价*/"fSellPri":"1009.480",             /*现汇卖出价*/"mSellPri":"1009.480",             /*现钞卖出价*/"bankConversionPri":"1014.870",        /*银行折算价/中间价*/"date":"2012-12-13",           /*发布日期*/"time":"16:25:49"               /*发布时间*/},"data2":{"name":"港币","fBuyPri":"80.210","mBuyPri":"79.570","fSellPri":"80.520","mSellPri":"80.520","bankConversionPri":"81.140","date":"2012-12-13","time":"16:25:49"},"data3":{"name":"美元","fBuyPri":"621.650","mBuyPri":"616.670","fSellPri":"624.150","mSellPri":"624.150","bankConversionPri":"628.870","date":"2012-12-13","time":"16:25:49"},"data4":{"name":"瑞士法郎","fBuyPri":"670.310","mBuyPri":"649.620","fSellPri":"675.700","mSellPri":"675.700","bankConversionPri":"674.350","date":"2012-12-13","time":"16:25:49"},"data5":{"name":"新加坡元","fBuyPri":"508.300","mBuyPri":"492.610","fSellPri":"512.390","mSellPri":"512.390","bankConversionPri":"512.000","date":"2012-12-13","time":"16:25:49"},"data6":{"name":"瑞典克朗","fBuyPri":"93.340","mBuyPri":"90.450","fSellPri":"94.090","mSellPri":"94.090","bankConversionPri":"93.770","date":"2012-12-13","time":"16:25:49"},"data7":{"name":"丹麦克朗","fBuyPri":"108.920","mBuyPri":"105.550","fSellPri":"109.790","mSellPri":"109.790","bankConversionPri":"109.430","date":"2012-12-13","time":"16:25:49"},"data8":{"name":"挪威克朗","fBuyPri":"110.490","mBuyPri":"107.080","fSellPri":"111.380","mSellPri":"111.380","bankConversionPri":"111.060","date":"2012-12-13","time":"16:25:49"},"data9":{"name":"日元","fBuyPri":"7.431","mBuyPri":"7.201","fSellPri":"7.483","mSellPri":"7.483","bankConversionPri":"7.531","date":"2012-12-13","time":"16:25:49"},"data10":{"name":"加拿大元","fBuyPri":"630.950","mBuyPri":"611.470","fSellPri":"636.010","mSellPri":"636.010","bankConversionPri":"638.800","date":"2012-12-13","time":"16:25:49"},"data11":{"name":"澳大利亚元","fBuyPri":"654.900","mBuyPri":"634.680","fSellPri":"660.160","mSellPri":"660.160","bankConversionPri":"663.300","date":"2012-12-13","time":"16:25:49"},"data12":{"name":"欧元","fBuyPri":"812.520","mBuyPri":"787.430","fSellPri":"819.040","mSellPri":"819.040","bankConversionPri":"821.960","date":"2012-12-13","time":"16:25:49"},"data13":{"name":"澳门元","fBuyPri":"77.910","mBuyPri":"75.300","fSellPri":"78.210","mSellPri":"80.720","bankConversionPri":"78.320","date":"2012-12-13","time":"16:25:49"},"data14":{"name":"菲律宾比索","fBuyPri":"15.100","mBuyPri":"14.640","fSellPri":"15.220","mSellPri":"15.690","bankConversionPri":"15.220","date":"2012-12-13","time":"16:25:49"},"data15":{"name":"泰国铢","fBuyPri":"20.240","mBuyPri":"19.620","fSellPri":"20.400","mSellPri":"21.030","bankConversionPri":"20.390","date":"2012-12-13","time":"16:25:49"},"data16":{"name":"新西兰元","fBuyPri":"524.400","mBuyPri":"0.000","fSellPri":"528.610","mSellPri":"0.000","bankConversionPri":"526.770","date":"2012-12-13","time":"16:25:49"},"data17":{"name":"韩国元","fBuyPri":"0.000","mBuyPri":"0.560","fSellPri":"0.000","mSellPri":"0.608","bankConversionPri":"0.586","date":"2012-12-13","time":"16:25:49"}}]
}

Java免费获取实时汇率API相关推荐

  1. 23、实时汇率API接口,免费好用

    1.前言 实时汇率API接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了3个小接口,支持汇率查询,汇率列表和特定货币汇率查询功能. 查看接口完整信息:https://www.mx ...

  2. 实时汇率API接口,免费好用

    1.前言 实时汇率API接口,支持汇率查询,汇率列表和特定货币汇率查询功能. 查看接口完整信息:https://www.idmayi.com/doc/detail?id=27 2.接口明细 注意:ap ...

  3. JAVA 获取实时汇率

    聚合数据中有很多我们会用到的数据,下面是获取实时汇率的方式. key值聚合数据注册后可获取,需要练习借用的,请评论回复. public void exchangeRate() {String urlI ...

  4. MFC程序中获取实时汇率(用于汇率转换功能)

    记录完成MFC大作业中遇到的问题和一些解决办法.调用的API来源为23.实时汇率API接口,免费好用_roll圈圈的博客-CSDN博客_汇率api:用到的库有curl.nlohmann_json. 参 ...

  5. java免费获取物流信息

    java免费获取物流信息 2018年03月26日 17:27:28 Gavin_wangzg 阅读数:715 标签: 物流信息 java java快递 更多 个人分类: java小记 版权声明:本文为 ...

  6. 获取实时汇率代码片段

    获取实时汇率 通过yahoo 基金提供的url ,可查询实时汇率,例如 http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20y ...

  7. 分享个免费的货币汇率API

    先上API文档链接:https://www.juhe.cn/docs/api/id/23,支持人民币牌价.外汇汇率查询:数据仅供参考,交易时以银行柜台成交价为准. 人民币牌价 接口地址:http:// ...

  8. 免费的货币汇率API

    先上API文档链接:https://www.juhe.cn/docs/api/id/23,支持人民币牌价.外汇汇率查询:数据仅供参考,交易时以银行柜台成交价为准. 人民币牌价 接口地址:http:// ...

  9. java linux获取实时cpu_用java取得linux系统cpu、内存的实时信息(参考别人代码)...

    /** *     cat /proc/cpuinfo - cpu (i.e. vendor, mhz, flags like mmx)     *     cat /proc/interrupts ...

最新文章

  1. 网络异常_网络异常易频发,流量分析来排查
  2. 让手机站点像原生应用的四大途径
  3. vmware 12中安装 OpenWRT 及 网络配置
  4. 试题 历届试题 买不到的数目(dp/数学)
  5. html如何设置滑轮效果,HTML中鼠标滚轮事件onmousewheel处理
  6. Web应用——焦点图自动浏览
  7. Mac typora自定义编辑界面的配置
  8. Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题
  9. RISC-V 没你想象的那么好
  10. 电脑处理器排行榜2021版
  11. java RSA加密生成license,用CPU序列号生成机器码
  12. java fileupload 文件类型_FileUpload怎么获取文件的类型
  13. 磁碟机病毒(VcingT)越来越变态——最新分析报告发布
  14. apt cyg 安装php,Cygwin的安装及使用apt-cyg管理软件包
  15. 问题 A: 三角函数计算(python)
  16. 为什么说微博、微信、贴吧、头条们都在做同一件事?
  17. Dubbo之服务导入流程解析
  18. PS 学习笔记 15-橡皮擦工具组
  19. 正点原子ARM裸机开发篇
  20. asyne和await

热门文章

  1. Github 之 本地上传代码到 Github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤)
  2. 机器学习知识总结及代码实现
  3. ACL 2022 | DialogVED:用于对话回复生成的预训练隐变量编码-解码模型
  4. 转:著名的100个管理定律点评10
  5. 回首风雨路 笔记本二十年发展史
  6. C语言编周期100ms的方波信号,单片机系统设计 - 2020学年春(邸志刚)-中国大学mooc-题库零氪...
  7. 误差反向传播的C++实现
  8. Mars3D\Cesium
  9. 三方协议中的服务器,手把手教你三方协议怎么填
  10. 网页打印中,A4纸对应的像素值的设定和换算