各种天气API接口

  • 中国天气
    • 博客

https://blog.csdn.net/qq_26599807/article/details/80814753

这篇提供的api虽然免费,不用注册,但是时效性不行,今天的天气是昨天的。

    • 自己注册的账号

第三方登陆就可以了

这两个网站都是气象局的,我是在第二个注册的账号,用的是免费体验版,这个的获取的信息比较少

报价:

一年天气实况和空气质量170000元

  • 和风天气
    • 自己注册的账号

邮箱可以注册,我注册的是普通用户,一天的请求量是1000次,需要可以升级成个人开发者或者企业用户,但是一些服务还是需要购买的。

和风天气的API做的还是比较全面的,基本的天气预报和空气质量都是免费开放的。API链接:https://www.heweather.com/documents/api/s6/weather-now

实况天气:

空气质量实况

 

 

 

 

 

需要注意的是免费用户的空气质量接口地点数量要少一些

报价:

一年天气实况和空气质量8160元

 

  • 心知天气
    • 自己注册的账号

需要手机号和邮箱注册,这个平台的接口稍微少一些,他的天气实况是免费,支持每小时400次的访问量,但是空气质量实况就是付费的了

免费享受的服务如下

报价:

一年天气实况和空气质量15000元

  • 彩云天气

这个需要邮箱和手机号注册,还需要审核,还没审核通过,不过看他们的接口文档写得水平,估计好不到哪里去。

这个就暂时不测试了

  • 微鲤旗下的中国万年历

不用注册

http://wthrcdn.etouch.cn/WeatherApi?city=北京

http://wthrcdn.etouch.cn/WeatherApi?citykey=101010100

这是从人家万年历下爬下来的

博客

https://www.cnblogs.com/kellen451/p/7130841.html

不过返回的文件是xml格式,需要解析,还有json格式的,不过信息比较少

http://wthrcdn.etouch.cn/weather_mini?city=北京

http://wthrcdn.etouch.cn/weather_mini?citykey=101010100

  • 新浪天气

不用注册,请求链接

http://php.weather.sina.com.cn/xml.php?city=%B9%E3%D6%DD&password=DJOYnieT8234jlsK&day=1

博客地址

https://blog.csdn.net/u014597198/article/details/78600942

没有空气质量实况

  • 阿里云

易源数据、墨迹天气、千云数据这三个天气实况不用钱,空气质量没有

  • 插件

http://www.tianqiapi.com/

个人做的第三方平台,只有天气实况

  • 总结

以上那么多平台,基本要收费的,少则一年几千,多者十多万。

最后决定用第五种。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用和风天气API的C代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> #define MAX_CITY_NAME_LEN 100 #define MAX_WEATHER_LEN 2000 // 和风天气API的基本信息 #define API_KEY "your_api_key" //替换为你的API Key #define API_URL "https://free-api.heweather.net/s6/weather/now" // 回调函数,用于处理HTTP响应 size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { strcat((char *) userdata, ptr); // 将HTTP响应内容添加到userdata中 return size * nmemb; } int main() { // 从用户输入中获取城市名 char city[MAX_CITY_NAME_LEN]; printf("请输入城市名:"); scanf("%s", city); // 构造HTTP请求URL char url[MAX_WEATHER_LEN]; snprintf(url, MAX_WEATHER_LEN, "%s?key=%s&location=%s", API_URL, API_KEY, city); // 初始化CURL库和HTTP请求 CURL *curl = curl_easy_init(); if (!curl) { fprintf(stderr, "初始化CURL失败!\n"); return EXIT_FAILURE; } curl_easy_setopt(curl, CURLOPT_URL, url); // 设置HTTP请求URL curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); // 设置回调函数 char weather[MAX_WEATHER_LEN] = ""; // 用于存储HTTP响应内容的字符串 curl_easy_setopt(curl, CURLOPT_WRITEDATA, weather); // 设置回调函数的userdata // 执行HTTP请求 CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { fprintf(stderr, "HTTP请求失败:%s\n", curl_easy_strerror(res)); return EXIT_FAILURE; } // 解析HTTP响应中的天气信息 char *status_start = strstr(weather, "\"status\":\""); // 找到状态码的起始位置 if (!status_start) { fprintf(stderr, "无法解析HTTP响应:%s\n", weather); return EXIT_FAILURE; } char *status_end = strchr(status_start + 11, '\"'); // 找到状态码的终止位置 if (!status_end) { fprintf(stderr, "无法解析HTTP响应:%s\n", weather); return EXIT_FAILURE; } *status_end = '\0'; // 将状态码终止位置的字符改为'\0',截断字符串 int status_code = atoi(status_start + 11); // 将状态码从字符串转换为整数 if (status_code != 200) { fprintf(stderr, "HTTP请求失败,状态码:%d\n", status_code); return EXIT_FAILURE; } char *cond_start = strstr(weather, "\"cond_txt\":\""); // 找到天气状况的起始位置 if (!cond_start) { fprintf(stderr, "无法解析HTTP响应:%s\n", weather); return EXIT_FAILURE; } char *cond_end = strchr(cond_start + 13, '\"'); // 找到天气状况的终止位置 if (!cond_end) { fprintf(stderr, "无法解析HTTP响应:%s\n", weather); return EXIT_FAILURE; } *cond_end = '\0'; // 将天气状况终止位置的字符改为'\0',截断字符串 char *cond_txt = cond_start + 13; // 天气状况的字符串就是起始位置的后面13个字符 printf("%s的天气状况为:%s\n", city, cond_txt); // 清理CURL库 curl_easy_cleanup(curl); return EXIT_SUCCESS; } ``` 需要注意的是,上述代码使用了libcurl库来进行HTTP请求,并使用了C标准库中的字符串处理函数来解析HTTP响应内容。在使用前需要安装libcurl库,并在编译时链接该库。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值