本帖最后由 宇智波·佐助 于 2017-3-10 09:59 编辑
中国天气网API接口支持类简介: 纯代码,无第三方支持库或模块。 封装了脚本语言支持类,JSON解析支持类,编码支持类,天气数据接口类。 主要是通过创建脚本对象,利用JS代码实现JSON解析相关算法。
中国天气网气象数据开放接口简介: 气象数据开放接口是中国气象局面向网络媒体、手机厂商、第三方气象服务机构等用户,通过web方式提供气象数据服务的官方载体。随着气象数据开放平台的逐渐完善,会面向广大用户提供更为丰富全面的气象数据,从而满足不同用户的不同需求。
申请地址:http://openweather,weather,com,cn/
官方PHP代码:
$appid_six=substr($appid,0,6);
$public_key="http://open.weather.com.cn/data/?areaid=".$areaid."&type=".$type."&date=".$date."&appid=".$appid[/url]; $key = base64_encode(hash_hmac('sha1',$public_key,$private_key,TRUE));
$URL="http://open.weather.com.cn/data/?areaid=".$areaid."&type=".$type."&date=".$date."&appid=".$appid_six."&key=".urlencode($key);
$string=file_get_contents($URL); ?>
其中,变量AppId,是注册中国天气网成功后分配的AppId文本,private_key是注册中国天气网成功后分配的完整key文本。
分析:
转换成易语言 ,主要的技术点在于“base64_encode”,“hash_hmac”加密算法,URL编码,以及UTF-8编码转换,还有json数据的读取。
其它都比较简单,有现成的代码可以借鉴,就“hash_hmac”加密算法比较麻烦一点,只能找到js代码,易语言自带脚本语言支持库,可用,不喜欢带库可以通过对象实现,本文采用后一种方法。
同理,json数据的读取,也可以用js脚本实现,简化代码如下(源码中未使用此方法):
.版本 2 .子程序 解析, 变体型, 公开, 将JSON文本转换为JSON对象,可以在紧随其后用“取错误()"命令来判断是否执行成功,如果返回值为空文本表示成功,否则失败。本命令为初级对象成员命令。
.参数 JSON文本, 文本型
.局部变量 js, 对象 js.创建 (“MSScriptControl.ScriptControl”, ) ' 创建
js.写属性 (“Language”, “JavaScript”)
返回(js.通用方法 (“Eval”, “(" + JSON文本 + ")" ))
如上面的代码所示,最简单的JSON文本转JSON对象的方法是用JS对象的Eval方法。
难点分析完毕,下载地址:http://www,nohacks,cn/post-52,html
|