第三方api地址(免费):https://timor.tech/api/holiday/year/2024
结果:
这里排除了补班数据
懒汉专用
public class Main {
public static void main(String[] args) {
String holidayStr=HolidayHttp.getHolidayByYear("2024");
ObjectMapper mapper=new ObjectMapper();
try {
HolidayEntity holiday=mapper.readValue(holidayStr,HolidayEntity.class);
for(String key:holiday.getHoliday().keySet()){
if(holiday.getHoliday().get(key).getHoliday()){
System.out.println(key+":"+holiday.getHoliday().get(key).toString());
}
}
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
DayEntity
@JsonIgnoreProperties(ignoreUnknown = true)
public class DayEntity {
private Boolean holiday;
private String name;
private Integer wage;
private String date;
private Integer rest;
public Boolean getHoliday() {
return holiday;
}
public void setHoliday(Boolean holiday) {
this.holiday = holiday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getWage() {
return wage;
}
public void setWage(Integer wage) {
this.wage = wage;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Integer getRest() {
return rest;
}
public void setRest(Integer rest) {
this.rest = rest;
}
@Override
public String toString() {
return "DayEntity{" +
"holiday=" + holiday +
", name='" + name + '\'' +
", wage=" + wage +
", date='" + date + '\'' +
", rest=" + rest +
'}';
}
HolidayEntity
public class HolidayEntity {
private String code;
private Map<String,DayEntity> holiday;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Map<String, DayEntity> getHoliday() {
return holiday;
}
public void setHoliday(Map<String, DayEntity> holiday) {
this.holiday = holiday;
}
}
HolidayHttp
public class HolidayHttp {
private static final String HOLIDAY_URL="https://timor.tech/api/holiday/year/";
/**
*@description 根据年份获取节假日数据
*@params year 年份
*@date 2024/4/7 9:28
*@author WANDER
*/
public static String getHolidayByYear(String year){
return HttpUtils.getApiResponse(HOLIDAY_URL+year);
}
}
HttpUtils
public class HttpUtils {
/**
* 初始化HttpClient- 设置连接超时时间10s
*/
private static final HttpClient HTTP_CLIENT = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
/**
* get请求方法
* @param url
* @return
*/
public static String getApiResponse(String url) {
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Accept", "application/json")
.build();
HttpResponse<String> response = HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
// 检查响应状态码
if (response.statusCode() == 200) {
return response.body();
} else {
System.out.println("Error: " + response.statusCode());
return null;
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
return null;
}
}
}