本文通过天气API的获取,记录分享http接口该怎么看文档,怎么调试使用。
数据来源
国内接口
当然还有其他超级多的接口。具体这里有篇文章也在介绍总结:免费、稳定的天气预报API
这里还得记录一下接口中的地区编号怎么查询。幸好git上有人整理分享了这个:地区编码整理
国外接口
同样得有一个查询地区编号的地方,这个在示例里面有:地区编码查询 。下载下来后,解压用文本格式打开,Ctrl F就能找到想要的地区的编号:
http接口调试工具—Fiddler
有了接口规范和调试地址,现在就可以开始调试了。下面以Fiddler的调试为例,简单记录怎么看文档,怎么使用该工具获取到数据。
获取key
api接口使用,大部分是需要先注册账号,购买(有免费的,但是得点击“购买”,以获取key)。绝大部分都会要求key,有的key是附带在get模式下,附带在http连接最后面;有的是post模式下,作为一个key附加。
这个key的作用,就是标记跟踪使用。服务端保存一个key,用户端必须也有对应的key,才给权限操作。
类似使用场景有:用户登录后的定时权限检验(每次登录会刷新key,在这段时间内操作,必须有这个key才有权限操作,通常30s服务端该key会变化,防止用户穿过登录来直接操作),这里为什么不用用户名+密码?因为密码必须要加密,这样每个接口都要进行密码的解密验证,性能消耗大;而用加密后的字符串直接比对的话,存在一种情况,当用户登录后,该连接信息被窃取(网络截获),这样就可以直接跳过登录,使用该字符串当key直接超权限操作了;同时下线长时间离线无操作客户端的功能,也是用到该key,长时间离线下,应该无权限操作,因为key和服务端上的不匹配,必须登录获取最新key才能操作。
下面直接使用国外那个接口的来记录:
注册登录后(这里可能需要VPN),可以去申请自己的key。这里使用默认分配的key来演示。
记录保存该key。然后点击API导航。
看文档
这里我选中Current weather data来记录:
文档已经提示了接口格式,但是发现直接这样使用是报错的,提示的401。401错误就是提示未登录,想想前面提到了key,但是这里怎么就没使用?
打开一下示例的链接(Example):
发现是需要附带&appid= XXXXX。
这种就是get模式下key的附带方式,放在最后,前提是需要找到这个key对应的“appid”这个字符串是叫什么,不同接口使用的字符串不同。
使用工具预调试
下面就使用Fiddler来记录,做网页的朋友应该用的较多是postman。
该工具作用很大,能捕捉电脑上的全部http通讯。也能作为http调试工具使用。
这里简单介绍作为调试工具使用的记录:
上面分析得到的http链接,其实在空网页上打开已经能获取到data了,但是一般情况会乱码;而且,如果是post模式,就不会直接显示在网页上,找起来很麻烦,所以一般都是直接用调试工具。使用工具,主要原因也是因为这些接口不单单是一个http字符串来的,还是附带好多其他设置项:
这里使用广东省,查上面文档,中间是有空格的,需要转码。
首先需要知道是get还是post,然后就是HTTP规范1.1。get模式直接复制http串进去就行了,直接回车或者Execute。就可以看到左边的“Result为200”的串,双击就能看到结果了。而post模式下,就需要把附加key全部复制进去下面那个框。
调试工具已经识别出来返回的是json,自动帮我们解析了,当然也可以看原文本,选择“TextView”。旁边那些Headers等等也有蛮多有用信息可以看的,如果出错的话,就需要关注这些信息了。
http接口,一般要注意编码,还有http串里面一些特殊字符串,http在开发中使用超级多。这里只是简单提及。Fiddler的功能实际也是超级多的,有兴趣的可以多多摸索,该工具免费,同时该工具的同家族中也有个免费的反编译工具,也有收费的界面工具(实际某度可以搜到老版本的破解),做界面的朋友可以关注一下。做客户端的朋友们,可能有人会发现Win10更新到某版本后,IE内核那个dll变化比较大,导致自定义浏览器的一些网页会出问题,Fiddler解决了该问题,目前还没找到Fiddler怎么处理的,只知道打开Fiddler捕捉时,那些网页就正常,关掉后就恢复原来的异常状态了。老外在做浏览器这方面还是很牛逼的,不得不佩服。
结尾附加一下中国天气网的api查询接口示例,不用key:
后面我再另外设文章分享怎么用C#写http接口服务端,Restful的普通json模式,以及table提交模式。当然还有使用xml格式的soap。