SmaterWeatherApi---签名加密和数据访问--简单粗暴一步搞定

使用中国天气网接口的朋友们,大家(还有我)辛苦了

有兴趣的可以去了解一下http://smart.weather.com.cn/wzfw/smart/weatherapi.shtml

年初的时候停用了之前的接口,改为申请使用,于是发个了申请邮件,中间各种曲折。。。一万字。。

总算是申请下来了,不过接口文档啊,看的我累觉不爱,文档上只有php版的kay生成方法,我在androi上使用,那些加密方法不知道用java如何实现

一怒之下,就写个php版的吧,本来是只想写个生成key的接口的,后来想了想 多写了几行 直接来个一步搞定,省去了客户端上多步网络操作和字符串拼接

叨叨了半天,直接看效果吧

示例:

完整代码:

<?php
/*----------这个文件需要传到自己的外网空间,没有的话 可以整个免费的云空间 我用的是魔泊网的 --------------*/
/*----------作用:访问这个文件 只需要传 type和areaid 这两个参数,就能得直接到 天气数据了/ 不用来来回回的签名拼接等等等一大堆麻烦的东西了--------------*/

//中国天气网SmartWeatherAPI签名接口
//签名生成完直接访问数据

// 参数type:请求数据类型;areaid: 城市ID

//appid
$app_id='你自己的appid';
//privatekey
$privatekey='你自己的privatekey';		

if(isset($_REQUEST['type'])&&isset($_REQUEST['areaid'])){
//接收参数
$type=$_REQUEST['type'];
$areaid=$_REQUEST['areaid'];
//格式化当前时间yyyyMMddHHmm
$date=date('YmdHi', time());

//api请求固定部分
$api_head='http://open.weather.com.cn/data/?areaid='.$areaid.'&type='.$type.'&date='.$date;

//拼接publickey
$publickey=$api_head.'&appid='.$app_id;

//生成key
$sign_key=base64_encode(hash_hmac('sha1',$publickey,$privatekey,true));

//截取appid前6位
$api_url_appid=substr($app_id,0,6);

//拼接和urlencode处理最终url
$api_url=$api_head.'&appid='.$api_url_appid.'&key='.urlencode($sign_key);

//省事省到底,直接执行 生成的url 访问数据
echo file_get_contents($api_url);

}else{

echo 'error';

}
?>

SmaterWeatherApi---签名加密和数据访问--简单粗暴一步搞定,布布扣,bubuko.com

时间: 2024-10-05 02:46:24

SmaterWeatherApi---签名加密和数据访问--简单粗暴一步搞定的相关文章

使用APICloud轻松简单6步搞定App制作开发

现如今,谁不知道App绝对就是OUT,谁不用App简直没法过日子!但是说到App制作,不懂编程,不懂技术的人就一脸懵圈.在门外汉来看,App制作是一件非常困难的事情,然而APICloud却说,轻松6个步骤就可以完成App制作和开发.不信我们就来看一看. 第一步:选择App开发模式 APICloud平台为不同需求的人提供了不同的产品,如果你要从零开始制作App,那么选用Deep Engine产品,用HTML5等标准Web语言去开发和制作App,iOS和Android两个系统是同时生成的. 如果你已

如何在MAC上使用SVN,简单几行命令搞定

如果你要使用SVN管理代码,如果不是迫不得已,还是看看git吧,但是SVN也要知道怎么用,原理是相似的. 首先,要准备的东西:svnX软件 https://pan.baidu.com/s/1mhEay3A 1.打开安装即可,然后再打开终端开始命令行操作,如果你想切换目录,可以使用“cd”命令 ls 查看当前路径的所有文件 mkdir svnFolder 2.创建名为“svn”的文件夹,假如,该文件就在根目录下,执行以下命令,后面的路径是刚刚创建的文件夹的路径 svnadmin create /U

【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ———————————————————————————————————————————— 先申请一下 创建一个应用 网站或者移动 注意回调地址(登录的时候会传东西过去) 以网站为例 验证后即可成功,具体看创建时候的提示 记住上面的id 这个是你的api管理页面(更多可以申请) 下面说一下重头戏: 第一步:引入jq<s

【路由达人】简单两步搞定小米路由新增功能-DDNS(解析域名地址转向在线工具)

DDNS(Dynamic Domain Name Server)是动态域名服务的缩写! 简单来说目前ISP大多为我们提供动态IP(如ADSL拨号上网),而很多设备或服务需要通过远程访问时需要一个固定的IP,而固定IP的费用很难让客户接受.所以DDNS它可以捕获用户每次变化的IP,然后将其与域名相对应,这样客户就可以直接通过域名来进行远程访问了. 简而言之:让你在外网使用域名方式访问家里的网络 DDNS解析过程演示图 <ignore_js_op> 内置运营商 花生壳oray.com 公云3322

linux下 切换双显卡调整屏幕亮度(简单两条命令搞定)

cat /sys/kernel/debug/vgaswitcheroo/switch //查看当前显卡状态 IGD: Integrated Display,集成显卡;DIS:Discrete Display,独立显卡 [[email protected] kiosk]# cat /sys/kernel/debug/vgaswitcheroo/switch 0:IGD:+:Pwr:0000:00:02.0 1:DIS: :Off:0000:01:00.0 0和1是序列号  pwr表示正在运行 of

简单案列完美搞定Mvc设计模式

一个小列子搞定Mvc模式,包括数据库以及如何提高用户体验度 1.首先来web.xml配置servlet的访问路径: <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:s

如何用电路实现检测过零点?这个简单电路就能搞定

1基本原理图: 在本设计中,可以为电机调速作为依据,在电控中主要为强电通讯作为时间参考. 2工作原理简介: 上述强电过零检测电路,提供+5V电源.该电路可以实现对AC强电进行过零点的检测.由于L和N_IN为AC 220V的正选波,大部分电压加在功率电阻R29上后,小部分电压加在双向光耦IC8上.正选波为正向时,光耦A为正极;反向时,光耦K为正极.光耦的正向导通时,光耦发送一个零点电压,完成每次的过零采样,控制芯片通过对ZeroInt信号的采集即可基本判断出AC过零点.若L和N_IN采样电压频率为

CAD转换PDF简单几步就能够搞定

CAD制图是一个复杂的过程,里面凝聚了建筑工程师的心血.按照自己的想法完成CAD制图工作后,很多人选择将CAD图纸转换成PDF格式,这样更加便于预览.可CAD图纸怎么转换成PDF格式呢?本篇就教大家简单几步搞定CAD转换PDF. 请下载安装迅捷CAD编辑器,软件安装完成后,请直接打开运行,进入软件操作界面. 将CAD转换成PDF有两种方法,可以单个文件转换,也可以批量转换. 1.如果您刚刚绘制完成CAD文件,或是打开了一个CAD文件编辑后,想要直接将CAD保存成PDF文件,那么可以使用以下方法:

数据模型和数据访问类以及属性扩展和泛型集合

数据模型: 数据模型就是将一个表中一行的所有属性利用封装写到一个类里面,将数据表中的行数据组成一个同样结构的对象,方便使用. 1 public class Car 2 { 3 SqlConnection conn = null; 4 SqlCommand com = null; 5 public Car() 6 { 7 conn = new SqlConnection("server=.;database=ADOlianxi0425;user=sa;pwd=123;"); 8 com