java 万年历接口

java 万年历接口功能:调用万年历免费接口,获取返回的数据分析数据入库业务:用户下单不可选择休息日下单,可以选择日历中的补班日期。不想人工维护,定时任务调用接口每天获取一次万年历。使用的接口:聚合数据网址:https://dashboard.juhe.cn/注册一下,实名认证一下就可以用了。点开api申请,里面找到万年历,每天免费100次调用申请完之后会有一个Key这个替换demo中的key就能直接用了package你的包名;importnet.sf.json

功能:调用万年历免费接口,获取返回的数据 分析数据入库

业务: 用户下单不可选择休息日下单,可以选择 日历中的补班日期。
不想人工维护,定时任务调用接口每天获取一次万年历。

使用的接口: 聚合数据 网址:https://dashboard.juhe.cn/

注册一下,实名认证一下就可以用了。点开api申请,里面找到万年历,每天免费100次调用
在这里插入图片描述

申请完之后会有一个 Key 这个替换demo中的key就能直接用了

在这里插入图片描述

package 你的包名;


import net.sf.json.JSONObject
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/*
* 聚合数据   万年历接口
* csdn 灵活的胖子_
* */
public class Ppcal { 
   
    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";

    //配置申请的KEY
    public static final String APPKEY ="配置申请的KEY";

    //2.获取近期假期
    public static Map<String,Object> getRequest2(String yyyy_mm){ 
   
        String result =null;
        String url ="http://v.juhe.cn/calendar/month";//请求接口地址
        Map params = new HashMap();//请求参数
        params.put("key",APPKEY);//您申请的appKey
        params.put("year-month",yyyy_mm);//指定月份,格式为YYYY-MM,如月份和日期小于10,则取个位,如:2012-1
        Map<String,Object>map1 = new HashMap<String, Object>();
        try { 
   
            result =net(url, params, "GET");
            Filex.logs("ppcal.txt","返回数据——"+result);
            JSONObject object = JSONObject.fromObject(result);
            if(object.getInt("error_code")==0){ 
   
                JSONObject jsonObject = JSONObject.fromObject(object);
                Map<Object, Object> map = (Map)jsonObject;
                Map<Object, Object> result1 = (Map)map.get("result");

                //获取到返回的data值
                Map<Object, Object> data = (Map)result1.get("data");

                //所有节假日的多个
                List<Map<Object,Object>> holiday = (List<Map<Object,Object>>)data.get("holiday");
                for (int i = 0; i < holiday.size(); i++) { 
   
                    Map<Object, Object> objectObjectMap = holiday.get(i);
                    List<Map<Object,Object>> list = (List<Map<Object,Object>>)objectObjectMap.get("list");
                    for (int j = 0; j <list.size() ; j++) { 
   
                        //具体的某一个日期   date 日期  status 1是假期
                        Map<Object, Object> objectObjectMap1 = list.get(j);
                        Object data1 = objectObjectMap1.get("date");
                        Object status = objectObjectMap1.get("status");
                        map1.put(data1.toString(),status.toString());
                    }
                }


            }
        } catch (Exception e) { 
   

            e.printStackTrace();
        }
        return map1;
    }



    public static void main(String[] args) { 
   
        getRequest2("2020-12");
    }

    /**
     *
     * @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();
    }
}

调用这个demo就可以了。
传的参数 是 年-月 注意:月如果小于10 前面不加0 如 : 2021-3

接口返回的数据示例:

{ 
   
    "reason": "Success",
    "result": { 
   
        "data": { 
   
            "year": "2021",
            "year-month": "2021-3",
            "holiday": "[{ 
   \"desc\":\"2月11日至17日放假调休,共7天。2月7日(星期日)、2月20日(星期六)上班\",\"festival\":\"2021-2-12\",\"list\":[{ 
   \"date\":\"2021-2-11\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-12\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-13\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-14\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-15\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-16\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-17\",\"status\":\"1\"},{ 
   \"date\":\"2021-2-7\",\"status\":\"2\"},{ 
   \"date\":\"2021-2-20\",\"status\":\"2\"}],\"list#num#\":9,\"name\":\"春节\",\"rest\":\"2月18,2月19,2月20请假三天,连周末可以连休11天\"},{ 
   \"desc\":\"4月3日至5日放假调休,共3天\",\"festival\":\"2021-4-4\",\"list\":[{ 
   \"date\":\"2021-4-3\",\"status\":\"1\"},{ 
   \"date\":\"2021-4-4\",\"status\":\"1\"},{ 
   \"date\":\"2021-4-5\",\"status\":\"1\"}],\"list#num#\":3,\"name\":\"清明节\",\"rest\":\"\"}]",
            "holiday_array": [
                { 
   
                    "desc": "2月11日至17日放假调休,共7天。2月7日(星期日)、2月20日(星期六)上班",
                    "festival": "2021-2-12",
                    "list": [
                        { 
   
                            "date": "2021-2-11",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-12",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-13",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-14",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-15",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-16",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-17",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-2-7",
                            "status": "2"
                        },
                        { 
   
                            "date": "2021-2-20",
                            "status": "2"
                        }
                    ],
                    "list#num#": 9,
                    "name": "春节",
                    "rest": "2月18,2月19,2月20请假三天,连周末可以连休11天",
                    "list_num": 9
                },
                { 
   
                    "desc": "4月3日至5日放假调休,共3天",
                    "festival": "2021-4-4",
                    "list": [
                        { 
   
                            "date": "2021-4-3",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-4-4",
                            "status": "1"
                        },
                        { 
   
                            "date": "2021-4-5",
                            "status": "1"
                        }
                    ],
                    "list#num#": 3,
                    "name": "清明节",
                    "rest": "",
                    "list_num": 3
                }
            ]
        }
    },
    "error_code": 0
}

今天的文章java 万年历接口分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30835.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注