• API 功能
    • 支持任意日期的农历与二十四节气查询;
    • 节气包含当日、下一个以及全年节气与日期;
    • 同时返回农历中文;
    • 全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3);
    • 全面兼容 Apple ATS;
    • 全国多节点 CDN 部署;
    • 接口极速响应,多台服务器构建 API 接口负载均衡。
    • 接口调用状态与状态监控
  • API 文档

    接口地址: https://api.gugudata.com/weather/lunarcalendar

    返回格式: application/json; charset=utf-8

    请求方式: GET

    请求协议: HTTPS

    请求示例: https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE

    数据预览: https://www.gugudata.com/preview/lunarcalendar

    接口测试: https://api.gugudata.com/weather/lunarcalendar/demo

    请求参数(GET 请求方式可参见下方示例代码)

    参数名 参数类型 是否必须 默认值 备注
    appkey string YOUR_APPKEY 付费后获取的 APPKEY
    date string YOUR_VALUE 请求转换的日期,格式为: yyyymmdd,如 20220101

    返回参数

    参数名 参数类型 备注
    DataStatus.StatusCode int 接口返回状态码
    DataStatus.StatusDescription string 接口返回状态说明
    DataStatus.ResponseDateTime string 接口数据返回时间
    DataStatus.DataTotalCount int 此条件下的总数据量
    Data.LunarDate string 农历日期
    Data.LunarDateChinese string 农历中文日期,如: 二零二二 壬寅 虎年 九月小初三
    Data.SolarTermNext string 下一个节气与日期,如: 寒露:10-8
    Data.SolarTermThisYear string 本年所有节气与日期,如: 立春:2-4 雨水:2-19 惊蛰:3-5 春分:3-20 清明:4-5 谷雨:4-20 立夏:5-5 小满:5-21 芒种:6-6 夏至:6-21 小暑:7-7 大暑:7-23 立秋:8-7 处暑:8-23 白露:9-7 秋分:9-23 寒露:10-8 霜降:10-23 立冬:11-7 小雪:11-22 大雪:12-7 冬至:12-22 小寒:1-5 大寒:1-20
    Data.SolarTermToday string 今日节气,如: 寒露:10-8
  • 接口 HTTP 响应标准状态码
    状态码 状态码解释 备注
    200 接口正常响应 业务状态码参见下方 接口自定义状态码
    403 / 429 请求频率超限 CDN 层通过 IP 请求频率智能判断,一般不同 IP 高频请求不会触发此状态码。
  • 接口自定义状态码
    自定义状态码 自定义状态码解释 备注
    100 正常返回 可通过判断此状态码断言接口正常返回。
    -1 请求失败 请求处理请求失败。
    501 参数错误 请检查您传递的参数个数以及参数类型是否匹配。
    429 / 502 请求频率受限 一般建议同一个 IP 每秒请求不超过 5 次 (QPS<=5),我们不限制同一个 key 的请求总次数,但当单位时间内同一个 IP 请求次数过多,或 AI CDN 判定为恶意抓取数据、流量攻击等异常时,CDN 会返回此状态码,请适当降低请求频率。如有特殊大并发请求场景需求,可联系我们添加白名单处理。
    503 APPKEY 权限超限/订单到期 请至开发者中心检查您的 APPKEY 是否到期或是否权限超限。
    504 APPKEY 错误 请检查传递的 APPKEY 是否为开发者中心获取到的值。
    505 请求的次数超出接口限制 请检查对应接口是否有请求次数限制以及您目前的接口请求剩余次数。
    900 接口内部响应错误 接口可用性为 99.999%,如获取到此状态码请邮件联系我们。
  • 请求示例代码
    curl --location --request GET 'https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE'
    CURL *curl;
    CURLcode res;
    curl = curl_easy_init();
    if(curl) {
      curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
      curl_easy_setopt(curl, CURLOPT_URL, "https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE");
      curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
      curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
      struct curl_slist *headers = NULL;
      curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
      res = curl_easy_perform(curl);
    }
    curl_easy_cleanup(curl);
    var requestOptions = {
      method: 'GET',
      redirect: 'follow'
    };
    fetch("https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE", requestOptions)
      .then(response => response.text())
      .then(result => console.log(result))
      .catch(error => console.log('error', error));
    var client = new RestClient("https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE");
    client.Timeout = -1;
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    Console.WriteLine(response.Content);
    package main
    import (
      "fmt"
      "net/http"
      "io/ioutil"
    )
    func main() {
      url := "https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE"
      method := "GET"
      client := &http.Client {
      }
      req, err := http.NewRequest(method, url, nil)
      if err != nil {
        fmt.Println(err)
      }
      res, err := client.Do(req)
      defer res.Body.Close()
      body, err := ioutil.ReadAll(res.Body)
      fmt.Println(string(body))
    }
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    Request request = new Request.Builder()
      .url("https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE")
      .method("GET", null)
      .build();
    Response response = client.newCall(request).execute();
    var settings = {
      "url": "https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE",
      "method": "GET",
      "timeout": 0,
    };
    $.ajax(settings).done(function (response) {
      console.log(response);
    });
    #import <Foundation/Foundation.h>
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    NSMutableURLRequest *request =
            [NSMutableURLRequest requestWithURL:[NSURL URLWithString:
            @"https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE"]
      cachePolicy:NSURLRequestUseProtocolCachePolicy
      timeoutInterval:10.0];
    [request setHTTPMethod:@"GET"];
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
      if (error) {
        NSLog(@"%@", error);
      } else {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
        NSError *parseError = nil;
        NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
        NSLog(@"%@",responseDictionary);
        dispatch_semaphore_signal(sema);
      }
    }];
    [dataTask resume];
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    import requests
    url = "https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE"
    payload = {}
    headers= {}
    response = requests.request("GET", url, headers=headers, data = payload)
    print(response.text)
    require "uri"
    require "net/http"
    url = URI("https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE")
    https = Net::HTTP.new(url.host, url.port);
    https.use_ssl = true
    request = Net::HTTP::Get.new(url)
    response = https.request(request)
    puts response.read_body
    import Foundation
    var semaphore = DispatchSemaphore (value: 0)
    var request = URLRequest(url: URL(string:"https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE")!,timeoutInterval: Double.infinity)
    request.httpMethod = "GET"
    let task = URLSession.shared.dataTask(with: request) { data, response, error in
      guard let data = data else {
        print(String(describing: error))
        return
      }
      print(String(data: data, encoding: .utf8)!)
      semaphore.signal()
    }
    task.resume()
    semaphore.wait()
    /*
     * GuGuData API Request Node.js Demo
     * 咕咕数据 API Node.js 请求 DEMO
     * 咕咕数据,专业的数据提供商,提供全面的数据接口 API,并提供专业全面的数据接口、商业数据分析。
     * 让数据成为您的生产原料。
     * https://www.gugudata.com
     */
    
    /* 咕咕数据 API 请求 DEMO ***开始***/
    // 导入相关类库
    var request = require("request");
    var querystring = require("querystring");
    var api_host = "https://api.gugudata.com";
    var api_path = "/weather/lunarcalendar"; // todo: 注意修改请求对应的 API 接口
    // todo: 注意修改构造请求参数
    var data = {
     appkey:'YOUR_APPKEY', date:'YOUR_VALUE'
    };
    var content = querystring.stringify(data);
    var options = {
        method: "GET",
        url: api_host + api_path + "?" + content,
        headers: {}
    };
    // 发送网络请求
    var requestGuGuData = request(options, (error, response) => {
        if (error) throw new Error(error);
        console.log("********接口响应返回 JSON 数据********");
        console.log(JSON.parse(response.body));
        requestGuGuData.end();
        console.log("********接口响应结束********");
    });
    /* 咕咕数据 API 请求 DEMO ***结束***/
    <?php
    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://api.gugudata.com/weather/lunarcalendar?appkey=YOUR_APPKEY&date=YOUR_VALUE",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "GET",
    ));
    $response = curl_exec($curl);
    curl_close($curl);
    echo $response;
  • 常见问题 Q&A
    • Q: 数据请求有缓存吗?

      A: 我们为所有数据请求提供实时响应。对于定期更新的数据,我们在其更新周期内实施缓存策略,以优化性能。

    • Q: 如何保证请求时 key 的安全性?

      A: 我们建议将对 API 的请求操作放置在您的应用程序后端。这样,前端请求只与您的后端服务交互,确保了更高的安全性和易于维护的架构。

    • Q: 接口可以用于哪些开发语言?

      A: 我们的接口支持所有能进行网络请求的开发语言,便于在各类项目中快速整合数据。

    • Q: 接口的性能可以保证吗?

      A: 我们的接口后台使用与商业级项目相同的架构,保证了稳定且高效的性能。您可以通过访问测试接口了解更多性能信息。

  • 服务协议以及服务免责声明

    用户应当充分阅读 服务协议 以及 服务免责声明 ,用户购买与使用咕咕数据 API 服务亦视为接受本协议。

  • 技术支持
    • 技术支持邮箱: support@gugudata.com
    • 微信客服: 客服链接

业务相关接口推荐

稳定提供服务 10 年 历年高考一分一段数据
  • 各省份高考分数线一分一段统计数据
  • 多年历史记录 / 多纬度对比
  • 2999元/年限时折扣 1499元/年
查看详情 数据更新于 7 小时前
50% 折扣
稳定提供服务 10 年 历年高校招生计划数据
  • 各高校历年招生计划数据
  • 高校招生数据 / 历年计划
  • 3999元/年限时折扣 1999元/年
查看详情 数据更新于 11 小时前
50% 折扣
稳定提供服务 10 年 全国中学基础信息
  • 提供全国初级高级中学基础数据
  • 定时更新 / 多维度筛选
  • 1499元/年限时折扣 499元/年
查看详情 数据更新于 3 小时前
30% 折扣
国际货币汇率
  • 支持多种货币对
  • 每日精准汇率 / 多币种支持
  • 3999元/年限时折扣 1999元/年
查看详情 被调用于 8 秒前
50% 折扣