本部分分两份,第一部分介绍获取实际天气api的操作。第二部分介绍unity官方插件Enviro。

 

     首先分享两个天气API获取方式,一个国内,一个国外。

 

先分享国内的:

    中国天气网地址:http://www.weather.com.cn

      当然还有其他超级多的接口,具体有这篇文章也在介绍总结。

      先标注一下国内接口部分使用到的地区编号的查询地址。git上已经有人整理了这部分,可以参考。

 

国外的有:

      https://openweathermap.org/api

      如果看不懂英文,可以用谷歌浏览器,自带的翻译功能很好用。

     同样也有一个查询地区编号的地址。下载下来后,解压用文本格式打开,就能查找想要找的地区的编号:

Unity天气效果---天气API获取

    

Http接口调试工具Fiddler

     api接口使用,大部分是需要先注册账号,购买(有免费的,但是得点击“购买”,以获取key)。绝大部分都会要求key,有的key是附带在get模式下,附带在http连接最后面;有的是post模式下,作为一个key附加。

     这个key的作用,就是标记跟踪使用。服务端保存一个key,用户端必须也有对应的key,才给权限操作。

     类似使用场景有:用户登录后的定时权限检验(每次登录会刷新key,在这段时间内操作,必须有这个key才有权限操作,通常30s服务端该key会变化,防止用户穿过登录来直接操作),这里为什么不用用户名+密码?因为密码必须要加密,这样每个接口都要进行密码的解密验证,性能消耗大;而用加密后的字符串直接比对的话,存在一种情况,当用户登录后,该连接信息被窃取(网络截获),这样就可以直接跳过登录,使用该字符串当key直接超权限操作了;同时下线长时间离线无操作客户端的功能,也是用到该key,长时间离线下,应该无权限操作,因为key和服务端上的不匹配,必须登录获取最新key才能操作。

   

    下面直接使用国外那个接口的来记录:

     注册登录后(这里可能需要v*n),可以去申请自己的key。这里使用默认分配的key来演示。

Unity天气效果---天气API获取

      记录保存该key。然后点击API导航。

Unity天气效果---天气API获取

      这里我选中Current weather data来记录:

Unity天气效果---天气API获取

    文档已经提示了格式,但是发现直接这样使用是报错的,提示的401。401错误就是提示未登录,想想前面提到了key,但是这里怎么就没使用?

Unity天气效果---天气API获取

     打开一下示例的链接(Example):

Unity天气效果---天气API获取

      发现是需要附带&appid= XXXXX。

      这种就是get模式下key的附带方式,放在最后,前提是需要找到这个key对应的“appid”这个字符串是叫什么,不同接口使用的字符串不同。

    下面就使用Fiddler来记录,做网页的朋友应该用的较多是postman。

Unity天气效果---天气API获取

      该工具作用很大,能捕捉电脑上的全部http通讯。也能作为http调试工具使用。

      这里简单介绍作为调试工具使用的记录:

     上面分析得到的http链接,其实在空网页上打开已经能获取到data了,但是如果是post模式,就不会直接显示在网页上,找起来很麻烦,所以一般都是直接用调试工具。使用工具,主要原因也是因为这些接口不单单是一个http字符串来的,还是附带好多其他设置项:

    这里使用广东省,查上面文档,中间是有空格的

Unity天气效果---天气API获取

      首先需要知道是get还是post,然后就是HTTP规范1.1。get模式直接复制http串进去就行了,直接回车或者Execute。就可以看到左边的“Result为200”的串,双击就能看到结果了。而post模式下,就需要把附加key全部复制进去下面那个框。

Unity天气效果---天气API获取

      调试工具已经识别出来返回的是json,自动帮我们解析了,当然也可以看原文本,选择“TextView”。旁边那些Headers等等也有蛮多有用信息可以看的,如果出错的话,就需要关注这些信息了。

      

      http接口,一般要注意编码,还有http串里面一些特殊字符串,http在开发中使用超级多。这里只是简单提及。Fiddler的功能实际也是超级多的,有兴趣的可以多多摸索,该工具免费,同时该工具的同家族中也有个免费的反编译工具,收费的界面工具(实际某度可以搜到老版本的**),做界面的朋友可以关注一下。做客户端的朋友们,可能有人会发现Win10更新到某版本后,IE内核那个dll变化比较大,导致自定义浏览器的一些网页会出问题,Fiddler解决了该问题,目前还没找到Fiddler怎么处理的,只知道打开Fiddler捕捉时,那些网页就正常,关掉后就异常了。老外在做浏览器这方面还是很牛逼的,不得不佩服。

      结尾附加一下中国天气网的api查询接口示例,不用key:

Unity天气效果---天气API获取

 

相关文章: