https://blog.csdn.net/m0_57119230/article/details/126154134 1.使用Response,OkHttpClient,Request要引入compile("com.squareup.okhttp3:okhttp:3.8.0") 2.时间查询地址(可直接访问返回2022年数据)http://timor.tech/api/holiday/year/"+2022 3.request必须加"User-Agent",否则403 forbidden 被拦截
import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import com.alibaba.fastjson.JSONObject; private static List<HolidayForm> getDays(int year) { String url = "http://timor.tech/api/holiday/year/"+year; OkHttpClient client = new OkHttpClient(); Response response; //解密数据 String rsa = null; Request request = new Request.Builder() .url(url) .get() .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36") .build(); try { response = client.newCall(request).execute(); rsa = response.body().string(); Map map = JSONObject.parseObject(rsa, Map.class); Map<String, Map<String, Object>> holiday = (Map<String, Map<String, Object>>) map.get("holiday"); Collection<Map<String,Object>> collection = holiday.values(); List<HolidayForm> FormList = new ArrayList<>(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); for(Map<String,Object> cc : collection){ HolidayForm holidayForm = new HolidayForm(); Date date = format.parse(cc.get("date").toString()); holidayForm.setDate(date); holidayForm.setWage(cc.get("wage").toString()); holidayForm.setName(cc.get("name").toString()); FormList.add(holidayForm); } return FormList; } catch (Exception e) { e.printStackTrace(); } return null; }
holidayForm: 为访问 http://timor.tech/api/holiday/year/"+2022 返回的holiday的所有value的form
包含 holiday,name,wage,date,after,target