调用百度汇率api 获取各国的汇率值

设置一个定时任务,每天更新汇率java代码如下

package com.thinkgem.jeesite.modules.huiLvApi.service;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.List;

import org.activiti.engine.impl.util.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import com.thinkgem.jeesite.common.utils.GsonUtils;
import com.thinkgem.jeesite.modules.huiLvApi.entity.RetData;
import com.thinkgem.jeesite.modules.huiLvApi.entity.Root;
import com.thinkgem.jeesite.modules.sys.entity.Dict;
import com.thinkgem.jeesite.modules.sys.service.DictService;

/**
 * 调用百度汇率api
 * 
 * @author Administrator
 * 
 */
@Service
@Scope
public class HuiLvService {

    @Autowired
    DictService dictService;

    /**
     * @param urlAll
     *            :请求接口
     * @param httpArg
     *            :参数
     * @return 返回结果
     */
    public static String request(String httpUrl, String httpArg) {
        BufferedReader reader = null;
        String result = null;
        StringBuffer sbf = new StringBuffer();
        httpUrl = httpUrl + "?" + httpArg;
        try {
            URL url = new URL(httpUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            // 填入apikey到HTTP header
            connection.setRequestProperty("apikey", "0d263364faa016e5f06075b69b799087");
            connection.connect();
            InputStream is = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String strRead = null;
            while ((strRead = reader.readLine()) != null) {
                sbf.append(strRead);
                sbf.append("\r\n");
            }
            reader.close();
            result = sbf.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 定时任务每天执行调用百度汇率api
     * 
     * @throws JSONException
     */
    public void queryHuiLv() {
        String httpUrl = "http://apis.baidu.com/apistore/currencyservice/currency";
        String httpArg = null;
        Dict dict = new Dict();
        dict.setType("hui_lv");
        List<Dict> dictList = dictService.findList(dict);// 查询出数据库表中所有的汇率
        if (dictList != null && dictList.size() > 0) {
            for (Dict dt : dictList) {
                String value = dt.getValue();
                httpArg = "fromCurrency=" + value + "&toCurrency=CNY&amount=1";
                if (!"1".equals(value)) {
   // 表里面目前有个舍客勒 键值是1,所以调用百度接口时无法识别
                    String data = request(httpUrl, httpArg);
                    try {
                        if (data != null && !"".equals(data)) {
                            Root rt = GsonUtils.json2T(data, Root.class);
                            RetData retData = rt.getRetData();
                            dt.setValue(retData.getFromCurrency());// 汇率简称
                            dt.setLabel(retData.getCurrency());//
                            dt.setUpdateDate(new Date());
                            dictService.updateHuiLv(dt);
                            System.out.println(data);
                            System.out.println(retData);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    /**
     * 测试用
     * 
     * @param httpUrl
     * @param httpArg
     * @return
     */
    public static String newRequest(String httpUrl, String httpArg) {
        BufferedReader reader = null;
        String result = null;
        StringBuffer sbf = new StringBuffer();
        httpUrl = httpUrl + "?" + httpArg;
        try {
            URL url = new URL(httpUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            // 填入apikey到HTTP header
            connection.setRequestProperty("apikey", "0d263364faa016e5f06075b69b799087");
            connection.connect();
            InputStream is = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String strRead = null;
            while ((strRead = reader.readLine()) != null) {
                sbf.append(strRead);
                sbf.append("\r\n");
            }
            reader.close();
            result = sbf.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    public static void main(String[] args) {
        String httpUrl = "http://apis.baidu.com/apistore/currencyservice/currency";
        String httpArg = "fromCurrency=USD&toCurrency=CNY&amount=1";
        String jsonResult = newRequest(httpUrl, httpArg);
        System.out.println(jsonResult);
    }
}

定时任务配置配置文件名称是spring-tasks.xml  (spring-tasks.xml 里面有配置如何定时执行queryHuiLv)请留意看

<?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:c="http://www.springframework.org/schema/c" xmlns:cache="http://www.springframework.org/schema/cache" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
        http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

    <!-- 定时清除手机短信redis缓存 -->
    <task:scheduled-tasks scheduler="scheduler">  
        <!-- <task:scheduled ref="yuDengJiPushService" method="queryYuDengJiPush" cron="0 0/1 * * * ?"/> --> 
        
        <task:scheduled fixed-delay="3600000"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<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>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值