常用汇率查询&&货币列表&&实时汇率查询换算小demo

#这个小demo是本人根据官方api自行编写,亲测可用#

1、导入相关jar包

注意:
1.这里导包错误会报
java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException的错误,

2.这里不能使用lang3和collections4,要使用lang2和collections3,不然还是会报上面的错误。

这里我建的是一个简单的只有springmvc的动态web项目,就是个小demo,没啥难度的。

package com.zsl.conversion;

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.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import net.sf.json.JSONObject;
@Controller
public class JuheDemo {
	    @Autowired
	    public static final String DEF_CHATSET = "UTF-8";
	    @Autowired
	    public static final int DEF_CONN_TIMEOUT = 30000;
	    @Autowired
	    public static final int DEF_READ_TIMEOUT = 30000;
	    @Autowired
	    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";
	 
	    //配置您申请的KEY
	    @Autowired
	    public static final String APPKEY ="APPKEY";
	 
	    //1.常用汇率查询
	    @RequestMapping("/getRequest1")
	    @ResponseBody
	    public static void getRequest1(){
	        String result =null;
	        String url ="http://op.juhe.cn/onebox/exchange/query";//请求接口地址
	        Map params = new HashMap();//请求参数
	            params.put("key",APPKEY);//应用APPKEY(应用详细页查询)
	 
	        try {
	            result =net(url, params, "GET");
	            JSONObject object = JSONObject.fromObject(result);
	            if(object.getInt("error_code")==0){
	                System.out.println(object.get("result"));
	            }else{
	                System.out.println(object.get("error_code")+":"+object.get("reason"));
	            }
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
	 
	    //2.货币列表
	    @RequestMapping("/getRequest2")
	    @ResponseBody
	    public static void getRequest2(){
	        String result =null;
	        String url ="http://op.juhe.cn/onebox/exchange/list";//请求接口地址
	        Map params = new HashMap();//请求参数
	            params.put("key",APPKEY);//应用APPKEY(应用详细页查询)
	 
	        try {
	            result =net(url, params, "GET");
	            JSONObject object = JSONObject.fromObject(result);
	            if(object.getInt("error_code")==0){
	                System.out.println(object.get("result"));
	            }else{
	                System.out.println(object.get("error_code")+":"+object.get("reason"));
	            }
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
	 
	    //3.实时汇率查询换算
	    @RequestMapping("/getRequest3")
	    @ResponseBody
	    public static void getRequest3(){
	        String result =null;
	        String url ="http://op.juhe.cn/onebox/exchange/currency";//请求接口地址
	        Map params = new HashMap();//请求参数
	            params.put("from","CNY");//转换汇率前的货币代码,这里的CNY是中国货币代码,USD是美国货币代码,具体请查api
	            params.put("to","USD");//转换汇率成的货币代码
	            params.put("key",APPKEY);//应用APPKEY(应用详细页查询)
	 
	        try {
	            result =net(url, params, "GET");
	            JSONObject object = JSONObject.fromObject(result);
	            if(object.getInt("error_code")==0){
	                System.out.println(object.get("result"));
	            }else{
	                System.out.println(object.get("error_code")+":"+object.get("reason"));
	            }
	        } 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));
	                } catch (Exception e) {
	                    // TODO: handle exception
	                }
	            }
	            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();
	    }
	    
	    public static void main(String[] args) {
	    	
	    }
	   
}

Springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
		
		<context:component-scan base-package="com.zsl.conversion"/>
		
		
		<mvc:annotation-driven/>
		
		<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="prefix" value="/jsp/"/>
			<property name="suffix" value=".jsp"/>
		</bean>
			
		<!-- 防止资源文件被spring MVC拦截 -->
	<mvc:resources mapping="/img/**" location="/img/"
		cache-period="31556926" />
	<mvc:resources mapping="/js/**" location="/js/"
		cache-period="31556926" />
	<mvc:resources mapping="/css/**" location="/css/"
		cache-period="31556926" />
</beans>

Web.xml

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  
  <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceRequestEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>forceResponseEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  
  <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

测试结果:(Json格式)
1.常用汇率查询

{"update":"2019-07-08 20:27:26","list":[["澳大利亚元","100","480.8100","465.8700","484.3400","482.5900"],["澳门元","100","85.6700","82.8000","86.0100","85.7600"],["港币","100","88.0600","87.3600","88.4100","88.2100"],["韩元","100","0.5852","0.5647","0.5900","0.5878"],["加拿大元","100","524.4800","507.9200","528.3500","526.4800"],["美元","100","686.3600","680.7700","689.2700","686.9700"],["欧元","100","771.8900","747.9100","777.5800","775.2500"],["日元","100","6.3427","6.1456","6.3894","6.3717"],["英镑","100","860.3800","833.6500","866.7100","864.3900"]]}

2.货币列表

{"list":[{"name":"人民币","code":"CNY"},{"name":"美元","code":"USD"},{"name":"日元","code":"JPY"},{"name":"欧元","code":"EUR"},{"name":"英镑","code":"GBP"},{"name":"韩元","code":"KRW"},{"name":"港币","code":"HKD"},{"name":"澳大利亚元","code":"AUD"},{"name":"加拿大元","code":"CAD"},{"name":"阿尔及利亚第纳尔","code":"DZD"},{"name":"阿根廷比索","code":"ARS"},{"name":"爱尔兰镑","code":"IEP"},{"name":"埃及镑","code":"EGP"},{"name":"阿联酋迪拉姆","code":"AED"},{"name":"阿曼里亚尔","code":"OMR"},{"name":"奥地利先令","code":"ATS"},{"name":"澳门元","code":"MOP"},{"name":"百慕大元","code":"BMD"},{"name":"巴基斯坦卢比","code":"PKR"},{"name":"巴拉圭瓜拉尼","code":"PYG"},{"name":"巴林第纳尔","code":"BHD"},{"name":"巴拿马巴尔博亚","code":"PAB"},{"name":"保加利亚列弗","code":"BGN"},{"name":"巴西雷亚尔","code":"BRL"},{"name":"比利时法郎","code":"BEF"},{"name":"冰岛克朗","code":"ISK"},{"name":"博茨瓦纳普拉","code":"BWP"},{"name":"波兰兹罗提","code":"PLN"},{"name":"玻利维亚诺","code":"BOB"},{"name":"丹麦克朗","code":"DKK"},{"name":"德国马克","code":"DEM"},{"name":"法国法郎","code":"FRF"},{"name":"菲律宾比索","code":"PHP"},{"name":"芬兰马克","code":"FIM"},{"name":"哥伦比亚比索","code":"COP"},{"name":"古巴比索","code":"CUP"},{"name":"哈萨克坚戈","code":"KZT"},{"name":"荷兰盾","code":"NLG"},{"name":"加纳塞地","code":"GHC"},{"name":"捷克克朗","code":"CZK"},{"name":"津巴布韦元","code":"ZWD"},{"name":"卡塔尔里亚尔","code":"QAR"},{"name":"克罗地亚库纳","code":"HRK"},{"name":"肯尼亚先令","code":"KES"},{"name":"科威特第纳尔","code":"KWD"},{"name":"老挝基普","code":"LAK"},{"name":"拉脱维亚拉图","code":"LVL"},{"name":"黎巴嫩镑","code":"LBP"},{"name":"林吉特","code":"MYR"},{"name":"立陶宛立特","code":"LTL"},{"name":"卢布","code":"RUB"},{"name":"罗马尼亚新列伊","code":"RON"},{"name":"毛里求斯卢比","code":"MUR"},{"name":"蒙古图格里克","code":"MNT"},{"name":"孟加拉塔卡","code":"BDT"},{"name":"缅甸缅元","code":"BUK"},{"name":"秘鲁新索尔","code":"PEN"},{"name":"摩洛哥迪拉姆","code":"MAD"},{"name":"墨西哥比索","code":"MXN"},{"name":"南非兰特","code":"ZAR"},{"name":"挪威克朗","code":"NOK"},{"name":"葡萄牙埃斯库多","code":"PTE"},{"name":"瑞典克朗","code":"SEK"},{"name":"瑞士法郎","code":"CHF"},{"name":"沙特里亚尔","code":"SAR"},{"name":"斯里兰卡卢比","code":"LKR"},{"name":"索马里先令","code":"SOS"},{"name":"泰国铢","code":"THB"},{"name":"坦桑尼亚先令","code":"TZS"},{"name":"土耳其新里拉","code":"TRY"},{"name":"突尼斯第纳尔","code":"TND"},{"name":"危地马拉格查尔","code":"GTQ"},{"name":"委内瑞拉玻利瓦尔","code":"VEB"},{"name":"乌拉圭新比索","code":"UYU"},{"name":"西班牙比塞塔","code":"ESP"},{"name":"希腊德拉克马","code":"GRD"},{"name":"新加坡元","code":"SGD"},{"name":"新台币","code":"TWD"},{"name":"新西兰元","code":"NZD"},{"name":"匈牙利福林","code":"HUF"},{"name":"牙买加元","code":"JMD"},{"name":"义大利里拉","code":"ITL"},{"name":"印度卢比","code":"INR"},{"name":"印尼盾","code":"IDR"},{"name":"以色列谢克尔","code":"ILS"},{"name":"约旦第纳尔","code":"JOD"},{"name":"越南盾","code":"VND"},{"name":"智利比索","code":"CLP"},{"name":"白俄罗斯卢布","code":"BYR"}]}

3.实时汇率查询换算

[{"currencyF":"CNY","currencyF_Name":"人民币","currencyT":"USD","currencyT_Name":"美元","currencyFD":"1","exchange":"0.1453","result":"0.1453","updateTime":"2019-07-08 20:24:44"},{"currencyF":"USD","currencyF_Name":"美元","currencyT":"CNY","currencyT_Name":"人民币","currencyFD":"1","exchange":"6.8808","result":"6.8808","updateTime":"2019-07-08 20:24:44"}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偷偷学习被我发现

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值