开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4562|回复: 5
收起左侧

[易语言纯源码] 中国天气网API接口支持类

[复制链接]
发表于 2017-3-9 10:39:57 | 显示全部楼层 |阅读模式   广东省东莞市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 宇智波·佐助 于 2017-3-10 09:59 编辑

中国天气网API接口支持类简介:
     适用于易语言开发平台
     纯代码,无第三方支持库或模块。
     封装了脚本语言支持类,JSON解析支持类,编码支持类,天气数据接口类
     主要是通过创建脚本对象,利用JS代码实现JSON解析相关算法。

中国天气网气象数据开放接口简介:
     气象数据开放接口是中国气象局面向网络媒体、手机厂商、第三方气象服务机构等用户,通过web方式提供气象数据服务的官方载体。随着气象数据开放平台的逐渐完善,会面向广大用户提供更为丰富全面的气象数据,从而满足不同用户的不同需求。

    申请地址:http://openweather,weather,com,cn/

官方PHP代码:



    <?


    phpset_time_limit(0);


    $private_key = 'xx';


    $appid='xx';


    $appid_six=substr($appid,0,6);


    $areaid = '101010100';


    $type='forecast_v';


    $date=date("YmdHi");


    $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);


    echo $URL."<br />";  


    $string=file_get_contents($URL);  


    echo $string;  
?>


其中,变量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

中国天气网API支持类.rar (85.68 KB, 下载次数: 68)

评分

参与人数 1好评 +1 精币 +3 收起 理由
冰点 + 1 + 3 支持开源~!感谢分享

查看全部评分


本帖被以下淘专辑推荐:

发表于 2018-12-13 18:00:25 | 显示全部楼层   浙江省台州市
谢谢,看看会不会用。
回复 支持 反对

使用道具 举报

结帖率:44% (4/9)

签到天数: 10 天

发表于 2018-4-16 21:55:43 | 显示全部楼层   广东省佛山市
正需要,谢谢
回复 支持 反对

使用道具 举报

发表于 2017-3-12 22:00:44 | 显示全部楼层   湖北省十堰市
正需要,谢谢
回复 支持 反对

使用道具 举报

结帖率:91% (10/11)

签到天数: 6 天

发表于 2017-3-10 10:01:51 | 显示全部楼层   河南省郑州市
正需要,谢谢
回复 支持 反对

使用道具 举报

结帖率:75% (18/24)
发表于 2017-3-9 10:54:15 | 显示全部楼层   重庆市重庆市
抢沙发 o(∩_∩)o 哈哈  下来学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表