|
TuyaOS
|
这个项目将会介绍 http 协议和使用相关接口进行 post,get 等操作。
HTTP 简介HTTP(HyperText Transfer Protocol),超文本传输协议,是一个客户端和服务器端请求和应答的标准(通常采用 TCP 协议)。
HTTPS 简介HTTPS 基于 HTTP 协议,通过 SSL 或 TLS 提供加密处理数据、验证对方身份以及数据完整性保护。
因为 HTTP 协议传数数据时使用的是明文,非常不安全,所以 tuyaos 采用 tls 协议对 TCP 传输数据的时候进行了加密。
在内部开发中,涂鸦设备与涂鸦服务器之间的交互,大多使用的是 atop 接口。atop 接口可以理解为涂鸦设备与涂鸦云端的一种俗称约定,例如使用 tuya.xxx.weather.get API 接口就可以访问涂鸦服务器,获取当前的天气状态。
但是直接暴露接口名称,对涂鸦服务器来说非常不安全,所以此例程中,都是设备通过域名去访问。如果开发者有相关需求需要 atop 接口,可以直接联系产品经理。
HTTP 请求消息HTTP 请求消息的格式如下:

tuyaos 内部已经替我们做了一些处理,外部提供了 HTTP 接口,我们只需要重点关注请求的方式、域名、请求体中的数据即可。
HTTP 响应消息响应消息就是服务器响应给客户端的消息内容,也叫作响应报文。响应消息的格式如下:

此例程只介绍设备(客服端)的使用,服务器端请开发者自行配置。
HTTP 请求方式,用来表明请求 URL 指定的资源不同的操作方式。HTTP1.1 中共定义了8种不同的请求方式。但此例程只介绍最常用的 post 和 get 请求方式。 tuyaos 支持带参数请求。例:iot_httpc_raw_post("www.baidu.com/index.html?demo=123",strlen("index.html?demo=123",p_http_hander);
postpost,向服务器提交资源(例如提交表单或上传文件)。数据被包含在请求体中提交给服务器。
使用iot_httpc_raw_post或者 httpc_raw_post 函数发起 post 请求。函数的形参介绍如下:

使用iot_httpc_raw_write_content或者httpc_raw_write_content函数填充 post 数据。函数的形参介绍如下:

post 完数据之后记得要使用 iot_httpc_raw_close 或者 httpc_raw_close 函数关闭请求,因为 HTTP 是无连接的,发完数据就要关闭。
getget,发送请求来获得服务器上的资源。
使用 iot_httpc_raw_get 或者 httpc_raw_get 函数发起 get 请求。函数的形参介绍如下:

使用 iot_httpc_raw_read_resp_header 或者 httpc_raw_read_resp_header函数获取响应报文信息。响应报文信息中需要重点关注状态码(响应码),完整的响应码可参考MDN官方文档。 函数的形参介绍如下:

使用 iot_httpc_raw_read_content 或者 httpc_raw_read_content 获取数据。函数的形参介绍如下:

get 完数据之后记得要使用 iot_httpc_raw_close 或者 httpc_raw_close 函数关闭请求,因为 HTTP 是无连接的,发完数据就要关闭。
相关函数目录: software/TuyaOS/include/components/svc_api_iot/include/tuya_iot_internal_api.h