概述
HTTP(HyperText Transfer Protocol)是一款用于传输超文本的应用层协议。AliOS Things的网络协议栈包含了HTTP组件,提供HTTP客户端标准能力。开发者可以通过组件API,在设备端快速实现通过HTTP GET、POST等方法与服务端进行数据交互。例如,设备端发起HTTP GET请求https://www.aliyun.com/,获取网页数据。
该组件支持以下功能:
HTTP GET
HTTP HEAD
HTTP POST
HTTP PUT
版权信息
Apache 2.0 License
目录结构
├── include
│ └── httpclient.h # 对外头文件
├── internal # 内部头文件
├── package.yaml # 编译配置文件
└── src
├── http_aos_wrapper.c # http收发适配层
├── http_client.c # http核心处理层
├── http_formdata.c # http表单数据处理
└── http_method_api.c # http方法接口
依赖组件
osal_aos
mbedtls
常用配置
http的常用配置在文件package.yaml内
CONFIG_HTTP_SECURE :是否开启HTTPS支持,默认开启
CONFIG_HTTP_FILE_OPERATE :是否使用文件操作,默认关闭
http的内部配置在文件internal/http_opts.h内
HTTPCLIENT_AUTHB_SIZE : http认证数据(用户名、密码)长度
#define HTTPCLIENT_AUTHB_SIZE 128
#endif
HTTPCLIENT_CHUNK_SIZE : http chunk块数据大小
#define HTTPCLIENT_CHUNK_SIZE 1024
#endif
HTTPCLIENT_SEND_BUF_SIZE : http发送缓存大小
#define HTTPCLIENT_SEND_BUF_SIZE 512
#endif
HTTPCLIENT_MAX_HOST_LEN : URL中host段最大长度
#define HTTPCLIENT_MAX_HOST_LEN 64
#endif
HTTPCLIENT_MAX_URL_LEN : URL最大长度
#define HTTPCLIENT_MAX_URL_LEN 512
#endif
HTTPCLIENT_MAX_RECV_WAIT_MS : 接收超时时间
#define HTTPCLIENT_MAX_RECV_WAIT_MS 5000
#endif
HTTP_PORT : HTTP默认端口
#define HTTP_PORT 80
#endif
HTTPS_PORT : HTTPS默认端口
#define HTTPS_PORT 443
#endif
API说明
参考 aos_httpclient_api
分配HTTP请求头部缓存和响应缓存
释放HTTP请求头部缓存和响应缓存
重置HTTP请求头部缓存和响应缓存
向URL发送GET请求,等待回复。
向URL发送POST请求,等待回复。
向URL发送PUT请求,等待回复。
向URL发送DELETE请求,等待回复。
发送请求
接收响应
关闭连接
设置请求自定义头部
获取响应码
获取响应头部字段值
添加文本表单数据