天气预报API开发
天气预报API开发
一、 寻觅篇
最近想要跟着视频练习一下利用API开发一个天气预报系统,就在网上找了一下可以用的API,结果好多都已经失效了。。。
1. 百度车联网天气预报API(失败)
首先是找了视频了的百度开发者平台 – LBS – 车联网 – 天气预报API,结果发现已经在2015年12月停止服务了
2. 中国天气网API(失败)
没办法,既然百度不鸟我了,只能继续找找看有没有别的了。难道就百度一家做生意么?
百度了一下“天气预报API”(^-^),发现还有一个老牌的API接口,大家都在用:
国家气象局提供的天气预报接口,听着就好霸气:
返回以下内容

返回以下内容

- http://m.weather.com.cn/data/101010100.html (返回7天的天气情况)

第三个据说返回的信息比较全面,但是看了下点开后的页面,还是算了
第一个和第二个看上去貌似挺正常的,就是返回的信息少了点,捏着鼻子也能用。。。
等等,好像有什么地方不对北京的温度今天是:-2℃?我看了下右下角的日历,恩, 5月20日,好日子啊 – 虐狗日。886
3. 新浪天气API(搞不定)
继续寻觅,又找到了个新浪天气API,
http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT8234jlsK&day=0
点击了下,如下图

框起来的部分有温度信息,大概可以搞搞
在搞起之前先试试其他的城市怎么样吧。于是我把URL改成了这样:
http://php.weather.sina.com.cn/xml.php?city=合肥&password=DJOYnieT8234jlsK&day=0

什么鬼,难道是汉字要转码么?于是我又转了下码


结果发现是我想多了,现在看来应该是后面的额PASSWORD部分,要我自己搞一个,但是也不知道去哪搞,算了,继续找吧
这次在博客园里找找看有没有最近几个月里的帖子里说道天气预报API的,结果还真找到了个:
4. 和风天气API(OK)

各种接口API文档。。。好详细的说。顿时泪流满面
赶紧注册下搞起来
终于有信息返回来了,好详细,决定了就用这个。

二、 解析篇
本以为可以既然找到了API了,接下来还不是随便2下子就搞定了。
结果还没开始就又被挡住了。。

这是什么鬼,怎么json的名称部分还可以有空格的。
试了下这种写法echo $data.HeWeather data service 3.0[0].aqi.city;不出所料是我想的太简单了,这样子怎么可能取得到数据
继续百度。看到有人这样写echo $data[‘HeWeather data service 3.0’][0].aqi.city;我也试试看,结果还是没反应
冷静,这种奇葩的格式,一定是人家字符串拼接出来的,既然返回的是一个json的话,是不是可以先把它当做字符串先处理下:

好了终于用json_decode转成了多维数组的形势,转完之后再用json_encode我自己来转成json格式,输出到前端。剩下的就是在前端取值后放到合适的位置了
天气预报API开发的更多相关文章
- 如何用全国天气预报API接口进行快速开发
最近公司项目有一个全国天气预报的小需求,想着如果用现成的API就可以大大提高开发效率,在网上的API商店搜索了一番,发现了 APISpace,它里面的全国天气预报API非常符合我的开发需求. 全国 ...
- 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南
欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
- 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...
- 天气预报API(四):全国城市代码列表(“新编码”)
说明 天气预报API系列文章涉及到的天气网站10个左右,只发现了中国气象频道和腾讯天气城市代码参数特别: 暂且称 中国气象频道.腾讯天气使用的城市代码为 "新编码" 注:中国气象频 ...
- ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
- 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...
- API 开发实践
整个2015年,如果要给自己打上一个标签的话,那应该就是 API. 在各个不同的系统中定制各种 API 框架. 在做商城对接各种电商 ERP 的 API 开发中,我采用的是兼容SHOPEX 的 API ...
- 报表引擎API开发入门— EJB程序数据源
我们前面讲了几个数据源,今天我们来讲一下EJB数据源,这篇讲完我们数据源这部分就讲完了.数据连接不需要直接访问数据库,而是使用EJB做为数据源.FR通过定义程序数据集使用EJB的相关类获取到EJB数据 ...
- Rest API 开发 学习笔记(转)
Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...
随机推荐
- JS基础学习(一)
首先感谢 http://www.w3school.com.cn/js/index.asp 学js真的很方便,&下面的内容其实是我自己做的一个备忘 第一节 大致了解 一 js基本介绍 1.轻量级 ...
- 手把手教你玩转nginx负载均衡(一)----使用vitualBox创建虚拟机
引言 作为一个web程序员,有时候需要想尽办法来利用有限的资源来产生最大程度的负载,除了提高硬件配置,增加带宽之外,CDN加速,DNS加速,缓存,还可以利用反向代理.但是要说反向代理,就不的不说ngi ...
- JS中,!=, !== 和 !的区别和使用场景
var num = 1; var str = '1'; var test = 1; test == num //true 相同类型 相同值 test === num //true 相同类型 ...
- 攻城狮在路上(陆)-- hadoop单机环境搭建(一)
一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86 ...
- OpenCv图像裁剪指点区域_roi
两种方式Range和ROI #include <opencv2/opencv.hpp> using namespace std; using namespace cv; void test ...
- js获取css中的样式
众所周知,obj.style只能够获取 <div id="a" style="width:100px;"></div> 结构上的样式 如 ...
- C语言中使用系统自带的快排函数
题目 . 德才论 () 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取 ...
- 2016-2017 ACM-ICPC Asia-Bangkok Regional Contest
A. WSI Extreme 将人按洗澡时间从大到小排序,那么$ans=\sum_{i=1}^{n}a_i\times\lfloor\frac{i+W-1}{W}\rfloor$. 当$W$比较大时, ...
- [转] js对象浅拷贝和深拷贝详解
本文为大家分享了JavaScript对象的浅拷贝和深拷贝代码,供大家参考,具体内容如下 1.浅拷贝 拷贝就是把父对像的属性,全部拷贝给子对象. 下面这个函数,就是在做拷贝: var Chinese = ...
- 关于这个博客以及C++入门该懂的一些东西
给三牧中学c++入门的同学们看的博客. 大概是入门一类的?说不定会写点自己的结题报告. 写的不好/写错了别怪我,蒟蒻瑟瑟发抖. 天哪要开始写入门了我好慌那么接下来是编译器连接. (本蒟蒻喜欢用DEV ...
