Java免费获取实时汇率API
最近在做项目,涉及到实时汇率的获取,查了很多方法。下面写下自己获取实时汇率的心得,希望帮到有需要的人。
我使用的是聚合数据,免费的货币汇率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相关推荐
- 23、实时汇率API接口,免费好用
1.前言 实时汇率API接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了3个小接口,支持汇率查询,汇率列表和特定货币汇率查询功能. 查看接口完整信息:https://www.mx ...
- 实时汇率API接口,免费好用
1.前言 实时汇率API接口,支持汇率查询,汇率列表和特定货币汇率查询功能. 查看接口完整信息:https://www.idmayi.com/doc/detail?id=27 2.接口明细 注意:ap ...
- JAVA 获取实时汇率
聚合数据中有很多我们会用到的数据,下面是获取实时汇率的方式. key值聚合数据注册后可获取,需要练习借用的,请评论回复. public void exchangeRate() {String urlI ...
- MFC程序中获取实时汇率(用于汇率转换功能)
记录完成MFC大作业中遇到的问题和一些解决办法.调用的API来源为23.实时汇率API接口,免费好用_roll圈圈的博客-CSDN博客_汇率api:用到的库有curl.nlohmann_json. 参 ...
- java免费获取物流信息
java免费获取物流信息 2018年03月26日 17:27:28 Gavin_wangzg 阅读数:715 标签: 物流信息 java java快递 更多 个人分类: java小记 版权声明:本文为 ...
- 获取实时汇率代码片段
获取实时汇率 通过yahoo 基金提供的url ,可查询实时汇率,例如 http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20y ...
- 分享个免费的货币汇率API
先上API文档链接:https://www.juhe.cn/docs/api/id/23,支持人民币牌价.外汇汇率查询:数据仅供参考,交易时以银行柜台成交价为准. 人民币牌价 接口地址:http:// ...
- 免费的货币汇率API
先上API文档链接:https://www.juhe.cn/docs/api/id/23,支持人民币牌价.外汇汇率查询:数据仅供参考,交易时以银行柜台成交价为准. 人民币牌价 接口地址:http:// ...
- java linux获取实时cpu_用java取得linux系统cpu、内存的实时信息(参考别人代码)...
/** * cat /proc/cpuinfo - cpu (i.e. vendor, mhz, flags like mmx) * cat /proc/interrupts ...
最新文章
- 网络异常_网络异常易频发,流量分析来排查
- 让手机站点像原生应用的四大途径
- vmware 12中安装 OpenWRT 及 网络配置
- 试题 历届试题 买不到的数目(dp/数学)
- html如何设置滑轮效果,HTML中鼠标滚轮事件onmousewheel处理
- Web应用——焦点图自动浏览
- Mac typora自定义编辑界面的配置
- Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题
- RISC-V 没你想象的那么好
- 电脑处理器排行榜2021版
- java RSA加密生成license,用CPU序列号生成机器码
- java fileupload 文件类型_FileUpload怎么获取文件的类型
- 磁碟机病毒(VcingT)越来越变态——最新分析报告发布
- apt cyg 安装php,Cygwin的安装及使用apt-cyg管理软件包
- 问题 A: 三角函数计算(python)
- 为什么说微博、微信、贴吧、头条们都在做同一件事?
- Dubbo之服务导入流程解析
- PS 学习笔记 15-橡皮擦工具组
- 正点原子ARM裸机开发篇
- asyne和await
热门文章
- Github 之 本地上传代码到 Github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤)
- 机器学习知识总结及代码实现
- ACL 2022 | DialogVED:用于对话回复生成的预训练隐变量编码-解码模型
- 转:著名的100个管理定律点评10
- 回首风雨路 笔记本二十年发展史
- C语言编周期100ms的方波信号,单片机系统设计 - 2020学年春(邸志刚)-中国大学mooc-题库零氪...
- 误差反向传播的C++实现
- Mars3D\Cesium
- 三方协议中的服务器,手把手教你三方协议怎么填
- 网页打印中,A4纸对应的像素值的设定和换算