概述
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請求,等待回複。
發送請求
接收響應
關閉連接配接
設定請求自定義頭部
擷取響應碼
擷取響應頭部字段值
添加文本表單資料