且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

AliOS Things 3.3.0 : http组件介绍

更新时间:2022-08-14 22:48:37

概述

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请求头部缓存和响应缓存

AliOS Things 3.3.0 : http组件介绍
释放HTTP请求头部缓存和响应缓存

AliOS Things 3.3.0 : http组件介绍
重置HTTP请求头部缓存和响应缓存

AliOS Things 3.3.0 : http组件介绍
向URL发送GET请求,等待回复。

AliOS Things 3.3.0 : http组件介绍
向URL发送POST请求,等待回复。

AliOS Things 3.3.0 : http组件介绍
向URL发送PUT请求,等待回复。

AliOS Things 3.3.0 : http组件介绍
向URL发送DELETE请求,等待回复。

AliOS Things 3.3.0 : http组件介绍
发送请求

AliOS Things 3.3.0 : http组件介绍
接收响应

AliOS Things 3.3.0 : http组件介绍
关闭连接

AliOS Things 3.3.0 : http组件介绍
设置请求自定义头部

AliOS Things 3.3.0 : http组件介绍
获取响应码

AliOS Things 3.3.0 : http组件介绍
获取响应头部字段值

添加文本表单数据