天气JSON API,不限次数获取十五天的天气预报

天气JSON API,不限次数获取十五天的天气预报

 
 
 

 

##免费天气接口说明

  1. 当前天气接口是用Springboot2.1.11 集成 Ehcache。
  2. 接口由https://www.sojson.com 免费提供。
  3. 用于个人学习,小型网站,商业用途请联系站长付费。
  4. 具体接口规则请查看:https://www.sojson.com/blog/305.html

##技术讲解

  1. 请求 sojson 采用了RestTemplate请求,具体看 WeatherManager.java
  2. 缓存采用 Ehcache ,配置文件请看 ehcache.xml 这里采用了ttl配置。解决了缓存过期和更新的问题。

##项目使用

项目启动后,比如访问北京的天气,链接为:http://127.0.0.1:8972/api/city/101010100

 

 


 

本站之前提供了免费接口:https://www.sojson.com/blog/234.html,但是由于访问量太大,对本站“SOJSON 在线工具”请求经常有影响,现在不得不改变接口地址。原接口需要停用。去年就已经停用,目前每天还有800万每天的调用量,你们这些无耻之徒。

有问题请加QQ群:608222884 (验证消息“sojson api”)必须带验证消息,不然不会过。

紧急情况说明:

禁用IP列表:

39.104.69.*(原因39.104.69.6 在2018年10月的 17~20日 排行为top 1,每天几十万次。)

47.98.211.* (原因47.98.211.131 在2018年11月份长期每天30~40万次每天)

2019年05月14日15:02:25 更新禁用IP列表如下:

 
  1. 121.40.192.*,111.61.21.*,60.29.188.*,61.164.49.*,39.107.58.*,117.90.4.*,49.82.107.*,223.242.131.*,61.150.107.*,45.32.90.*,124.160.11.*,59.173.243.*,140.143.7.*,123.139.56.*,58.40.228.*,106.2.232.*,118.186.228.*,47.99.107.*,59.49.50.*,183.95.250.*,202.115.193.*,47.106.181.*,124.163.225.*,111.77.20.*,106.57.6.*,218.241.82.*,59.55.49.*,223.247.165.*,113.239.198.*,183.188.90.*,47.110.42.*,47.101.65.*,39.104.69.*,106.56.247.*,202.204.214.*,49.4.95.*,101.224.74.*,106.92.157.*,114.95.87.*,58.38.47.34,188.131.154.*,1.202.142.*,218.3.243.*,47.98.211.*,183.194.169.135,118.113.200.*,47.92.165.222,39.107.225.34

天气接口优化点:

1.接口每8小时更新一次,机制是  CDN  缓存8小时更新一次。注意:“自己做缓存,因为你每请求我一次,我就是有费用的,又拍云 CDN加速回源是按次收费,你可以了解下”。

2.接口采用城市ID来精准查询请求,具体每个城市对应的ID可以查看下面的文件“city.json”每个城市的city_code字段,如果是"",就是省份不能直接查询天气。

3.如果需要1个小时更新一次的接口,并且支持  https  ,需要付费800元,不限次数,永久有效,不足一年按 12 / 8 * 使用月数退款,提供公司盖章收据。

4.每分钟阈值为300次,如果超过会禁用一天。请谨慎使用。

5.增加了独立的年月日字段:ymd 如“2018年12月12日” 原来的date改成了独立的日,如12,增加了独立的星期字段week:如“星期日”,具体看下面返回值说明。

6.天气取消了昨天天气,增加到了15天天气(2019年02月16日更新)

接口自问自答

1、接口能不能 ajax jsonp 的方式调用?

答:不能,必须后端语言,比如   Java  、PHP、C#,PY等。 注:Android,iOS 之类直接调用,我发现后会封掉,建议后端调用

2、接口每天的更新时间是什么时候?

答:天气更新时间为每天的:3点,8点,13点,19点,所以建议不要凌晨去获取,加上CDN有1个小时的缓存,建议4点,9点,14点,20点后获取。

3、接口稳定吗?

答:应该,也许、如果的话,是稳定的。如果不明白的话,你摸着良心觉得您问的是不是废话。

4、天气有哪些状态?天气图片哪里获取?

答:请加QQ群:608222884 (验证消息“sojson api”),群内有全部的类型和参考文件。此群不收费,不要发广告。

5、提示403是怎么回事?

答:此接口理论上不限制次数,如果你一天需要调用大量,比如几十万次一天必封无疑。几万次也有封的可能性比如一瞬间高并发调用,我会酌情考虑封掉。

6、提示有恶意调用是什么意思?

答:因为你一直循环调用,没有做缓存,对服务器造成了很大的压力,请参照第五点。

新天气接口请求参数:

  Java   请求  天气接口  Demo讲解:https://www.sojson.com/blog/349.html (Springboot + Ehcache)

具体请看下面的city.json文件,下面以天津举例,其他城市ID,请看最下面的城市数据

 
  1. {
  2. "id": 26,//没有用
  3. "pid": 0,//没有用,级联关联的上级ID
  4. "city_code": "101030100",//城市ID
  5. "city_name": "天津",//城市name
  6. "post_code": "300000",//邮政编码,这个没有用,您自己的API可以通过邮政编码来转换
  7. "area_code": "022",//区号,这个没有用,您自己的API可以通过这个来转换
  8. "ctime": "2019-07-11 17:30:08"//这个没有用
  9. }

上面不算参数,只是对于city.json 文件说明一下,有用的参数就city_code的值。其他的都没用,数据提供全一点,希望对您有帮助

那天津对于的ID就是city_code:101030100。

请求链接:http://t.weather.sojson.com/api/weather/city/101030100就这个链接,然后get请求,不用再带任何参数。请求是restfull风格,city_code 为9位数字。只要拼接在地址 “http://t.weather.sojson.com/api/weather/city/+city_code” 后面即可。

接口返回值:

接口成功返回值:

 
  1. {
  2. "time": "2018-09-22 12:37:21",//系统更新时间
  3. "cityInfo": {
  4. "city": "天津市", //请求城市
  5. "cityKey": "101030100",//请求ID
  6. "parent": "天津", //上级,一般是省份
  7. "updateTime": "12:32"//天气更新时间
  8. },
  9. "date": "20180922", //当前天气的当天日期
  10. "message": "Success !", //返回message
  11. "status": 200, //返回状态
  12. "data": {
  13. "shidu": "22%", //湿度
  14. "pm25": 15.0, //pm2.5
  15. "pm10": 46.0, //pm10
  16. "quality": "优", //空气质量
  17. "wendu": "24", //温度
  18. "ganmao": "各类人群可自由活动",//感冒提醒(指数)
  19. "forecast": [//今天+未来14天
  20. {
  21. "date": "22",
  22. "ymd": "2018-09-22", //年月日 (新增)
  23. "week": "星期六", //星期 (新增)
  24. "sunrise": "05:57",
  25. "high": "高温 26.0℃",
  26. "low": "低温 15.0℃",
  27. "sunset": "18:10",
  28. "aqi": 55.0,
  29. "fx": "西北风",
  30. "fl": "4-5级",
  31. "type": "晴",
  32. "notice": "愿你拥有比阳光明媚的心情"
  33. },
  34. {
  35. "date": "23",
  36. "ymd": "2018-09-22", //年月日 (新增)
  37. "week": "星期日", //星期 (新增)
  38. "sunrise": "05:58",
  39. "high": "高温 23.0℃",
  40. "low": "低温 14.0℃",
  41. "sunset": "18:09",
  42. "aqi": 29.0,
  43. "fx": "西北风",
  44. "fl": "4-5级",
  45. "type": "晴",
  46. "notice": "愿你拥有比阳光明媚的心情"
  47. },
  48. {
  49. "date": "24",
  50. "ymd": "2018-09-22", //年月日 (新增)
  51. "week": "星期一", //星期 (新增)
  52. "sunrise": "05:59",
  53. "high": "高温 24.0℃",
  54. "low": "低温 15.0℃",
  55. "sunset": "18:07",
  56. "aqi": 25.0,
  57. "fx": "西北风",
  58. "fl": "<3级",
  59. "type": "晴",
  60. "notice": "愿你拥有比阳光明媚的心情"
  61. },
  62. {
  63. "date": "25",
  64. "ymd": "2018-09-22", //年月日 (新增)
  65. "week": "星期二", //星期 (新增)
  66. "sunrise": "06:00",
  67. "high": "高温 24.0℃",
  68. "low": "低温 16.0℃",
  69. "sunset": "18:05",
  70. "aqi": 56.0,
  71. "fx": "西南风",
  72. "fl": "<3级",
  73. "type": "晴",
  74. "notice": "愿你拥有比阳光明媚的心情"
  75. },
  76. {
  77. "date": "26",
  78. "ymd": "2018-09-22", //年月日 (新增)
  79. "week": "星期三", //星期 (新增)
  80. "sunrise": "06:01",
  81. "high": "高温 24.0℃",
  82. "low": "低温 17.0℃",
  83. "sunset": "18:04",
  84. "aqi": 86.0,
  85. "fx": "西南风",
  86. "fl": "3-4级",
  87. "type": "阴",
  88. "notice": "不要被阴云遮挡住好心情"
  89. }
  90. ]
  91. }
  92. }

参数错误返回值:

 
  1. {
  2. "time": "2018-09-22 12:45:29",
  3. "message": "CityId不在返回之内。",
  4.     "status":403
  5. }

参数数位不对返回值:

 
  1. {
  2. "message": "Request resource not found.",
  3. "status": 404
  4. }

城市数据:

请在百度网盘下载:链接: https://pan.baidu.com/s/1JFAwnH2MRLc5OD3hsJZwGQ 提取码: u8sk 

JSON City:https://github.com/baichengzhou/weather.api/blob/master/src/main/resources/citycode-2019-08-23.json

有问题请加QQ群:608222884 (验证消息“sojson api”)

如果需要https,并且每个小时更新天气状况,请加群后联系群主,付费800元,永久有效,不限次数。

 

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/305.html

转载时必须以链接形式注明原始出处及本声明。

 
 
 

posted on 2020-04-17 16:27  shuzihua  阅读(680)  评论(0编辑  收藏  举报

导航