前言
之前一直使用MQTT的物联网协议,偶然间发现互联网中HTTP的通信协议也应用广泛,想要更好的理解这个协议,可以基于tcp来实现这个协议,这样可以更理解底层组包结构。
http与mqtt类似都是基于tcp(udp)的基础上规范了传输的报文,其报文格式为:
下面以苏宁的获取时间API为例,其API为:
http://quan.suning.com/getSysTime.do
这里先使用GET方法请求
其请求方法为 GET
URL为/getSysTime.do
协议版本为HTTP/1.1
所以请求的这一帧TCP数据为:
GET /getSysTime.do HTTP/1.1
Host:quan.suning.com
其Host字段为必填项,目的是选择使用这个域名的网站程序对请求做响应。
GET的这个API其服务器为quan.suning.com也可以使用CMD的ping目录来查看具体ip(但是没必要)
端口号直接使用http最常用的端口号80,如果是https其默认端口号为443
然后打开TCP客户端,连接到这个服务器,发送这个GET请求:
然后就可以获取到这个API提供的JSON数据了
下面是一些常用的API网站:
UomgAPI - 优启梦免费API数据接口调用服务平台
Multiple Bio Links for Instagram - 短网址
韩小韩API接口站 - 免费API数据接口调用服务平台JSON API免费接口-BeJSON.com
接口大全-免费API,收集所有免费的API
一些需要注册的API网站:
API接口-免费API接口-API分类大全-聚合数据 (juhe.cn)
万维易源-互联网API入口 (showapi.com)
全部API - API数据大全 - 极速数据 (jisuapi.com)
百度AI开放平台-全球领先的人工智能服务平台 (baidu.com)
阿里云-为了无法计算的价值 (aliyun.com)