在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

基于JAVA的万年历api调用代码实例

2016-7-29 15:47| 发布者: zhangjf| 查看: 625| 评论: 0

摘要: 代码描述:基于JAVA的万年历api调用代码实例接口地址:https://www.juhe.cn/docs/api/id/177 import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;impor ...
代码描述:基于JAVA的万年历api调用代码实例
接口地址:https://www.juhe.cn/docs/api/id/177
  1. import java.io.BufferedReader;
  2. import java.io.DataOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.io.UnsupportedEncodingException;
  7. import java.net.HttpURLConnection;
  8. import java.net.URL;
  9. import java.net.URLEncoder;
  10. import java.util.HashMap;
  11. import java.util.Map;
  12. import net.sf.json.JSONObject;
  13. /**
  14. *万年历调用示例代码 - 聚合数据
  15. *在线接口文档:http://www.juhe.cn/docs/177
  16. **/
  17. public class JuheDemo {
  18. public static final String DEF_CHATSET = "UTF-8";
  19. public static final int DEF_CONN_TIMEOUT = 30000;
  20. public static final int DEF_READ_TIMEOUT = 30000;
  21. 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";
  22. //配置您申请的KEY
  23. public static final String APPKEY ="*************************";
  24. //1.获取当天的详细信息
  25. public static void getRequest1(){
  26. String result =null;
  27. String url ="http://japi.juhe.cn/calendar/day";//请求接口地址
  28. Map params = new HashMap();//请求参数
  29. params.put("key",APPKEY);//您申请的appKey
  30. params.put("date","");//指定日期,格式为YYYY-MM-DD,如月份和日期小于10,则取个位,如:2012-1-1
  31. try {
  32. result =net(url, params, "GET");
  33. JSONObject object = JSONObject.fromObject(result);
  34. if(object.getInt("error_code")==0){
  35. System.out.println(object.get("result"));
  36. }else{
  37. System.out.println(object.get("error_code")+":"+object.get("reason"));
  38. }
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. //2.获取当月近期假期
  44. public static void getRequest2(){
  45. String result =null;
  46. String url ="http://japi.juhe.cn/calendar/month";//请求接口地址
  47. Map params = new HashMap();//请求参数
  48. params.put("key",APPKEY);//您申请的appKey
  49. params.put("year-month","");//指定月份,格式为YYYY-MM,如月份和日期小于10,则取个位,如:2012-1
  50. try {
  51. result =net(url, params, "GET");
  52. JSONObject object = JSONObject.fromObject(result);
  53. if(object.getInt("error_code")==0){
  54. System.out.println(object.get("result"));
  55. }else{
  56. System.out.println(object.get("error_code")+":"+object.get("reason"));
  57. }
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. }
  61. }
  62. //3.获取当年的假期列表
  63. public static void getRequest3(){
  64. String result =null;
  65. String url ="http://japi.juhe.cn/calendar/year";//请求接口地址
  66. Map params = new HashMap();//请求参数
  67. params.put("key",APPKEY);//您申请的appKey
  68. params.put("year","");//指定年份,格式为YYYY,如:2015
  69. try {
  70. result =net(url, params, "GET");
  71. JSONObject object = JSONObject.fromObject(result);
  72. if(object.getInt("error_code")==0){
  73. System.out.println(object.get("result"));
  74. }else{
  75. System.out.println(object.get("error_code")+":"+object.get("reason"));
  76. }
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. }
  80. }
  81. public static void main(String[] args) {
  82. }
  83. /**
  84. *
  85. * @param strUrl 请求地址
  86. * @param params 请求参数
  87. * @param method 请求方法
  88. * @return 网络请求字符串
  89. * @throws Exception
  90. */
  91. public static String net(String strUrl, Map params,String method) throws Exception {
  92. HttpURLConnection conn = null;
  93. BufferedReader reader = null;
  94. String rs = null;
  95. try {
  96. StringBuffer sb = new StringBuffer();
  97. if(method==null || method.equals("GET")){
  98. strUrl = strUrl+"?"+urlencode(params);
  99. }
  100. URL url = new URL(strUrl);
  101. conn = (HttpURLConnection) url.openConnection();
  102. if(method==null || method.equals("GET")){
  103. conn.setRequestMethod("GET");
  104. }else{
  105. conn.setRequestMethod("POST");
  106. conn.setDoOutput(true);
  107. }
  108. conn.setRequestProperty("User-agent", userAgent);
  109. conn.setUseCaches(false);
  110. conn.setConnectTimeout(DEF_CONN_TIMEOUT);
  111. conn.setReadTimeout(DEF_READ_TIMEOUT);
  112. conn.setInstanceFollowRedirects(false);
  113. conn.connect();
  114. if (params!= null && method.equals("POST")) {
  115. try {
  116. DataOutputStream out = new DataOutputStream(conn.getOutputStream());
  117. out.writeBytes(urlencode(params));
  118. } catch (Exception e) {
  119. // TODO: handle exception
  120. }
  121. }
  122. InputStream is = conn.getInputStream();
  123. reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
  124. String strRead = null;
  125. while ((strRead = reader.readLine()) != null) {
  126. sb.append(strRead);
  127. }
  128. rs = sb.toString();
  129. } catch (IOException e) {
  130. e.printStackTrace();
  131. } finally {
  132. if (reader != null) {
  133. reader.close();
  134. }
  135. if (conn != null) {
  136. conn.disconnect();
  137. }
  138. }
  139. return rs;
  140. }
  141. //将map型转为请求参数型
  142. public static String urlencode(Map<String,Object>data) {
  143. StringBuilder sb = new StringBuilder();
  144. for (Map.Entry i : data.entrySet()) {
  145. try {
  146. sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
  147. } catch (UnsupportedEncodingException e) {
  148. e.printStackTrace();
  149. }
  150. }
  151. return sb.toString();
  152. }
  153. }
复制代码

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-5-6 13:06

Copyright 2015-2025 djqfx

返回顶部