AliOS Things 3.3.0 : http组件介绍

简介: HTTP(HyperText Transfer Protocol)是一款用于传输超文本的应用层协议。

概述

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

image.png
释放HTTP请求头部缓存和响应缓存

image.png
重置HTTP请求头部缓存和响应缓存

image.png
向URL发送GET请求,等待回复。

image.png
向URL发送POST请求,等待回复。

image.png
向URL发送PUT请求,等待回复。

image.png
向URL发送DELETE请求,等待回复。

image.png
发送请求

image.png
接收响应

image.png
关闭连接

image.png
设置请求自定义头部

image.png
获取响应码

image.png
获取响应头部字段值

添加文本表单数据

相关文章
|
缓存 JavaScript
常见的HTTP状态码及vue中组件name的作用
常见的HTTP状态码及vue中组件name的作用
|
Web App开发 JavaScript 测试技术
简单的bboss http组件使用方法
简单的bboss http组件使用方法. 首先在工程中导入bboss http组件: maven坐标: com.bbossgroups bboss-http 5.
721 0
|
Web App开发 Java Apache
阿帕奇 Http 组件(Apache HttpComponents)- Apache 翻译过来好像都不认识了吧
Apache HttpComponents 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
1418 0
|
前端开发
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍。 1.概述 bboss提供cxf webservice(基于cxf 2.7.6),hessian(基于4.0.7),http(基于bboss mvc)三种服务的一次性便捷发布机制。
911 0
|
JavaScript 前端开发
关于ExtJS3.0组件连接http://extjs.com/s.gif的问题
本文为原创,如需转载,请注明作者和出处,谢谢!     最近在做一个ExtJS的应用,以前使用时都是连网的,也没任何问题。不过最近由于某些原因,开发的机器无法连网。
771 0
|
1月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
139 0
|
3月前
|
Web App开发 移动开发 JavaScript
Python网络编程(三),HTTP协议
Python网络编程(三),HTTP协议
61 0
|
4月前
|
网络协议
【计算机网络-应用层】HTTP协议
【计算机网络-应用层】HTTP协议