Link Kit C-SDK
4.0.0
|
#include "core_http.h"
函数 | |
static void | _core_aiot_http_exec_inc (core_http_handle_t *http_handle) |
static void | _core_aiot_http_exec_dec (core_http_handle_t *http_handle) |
static void | _core_http_auth_recv_handler (void *handle, const aiot_http_recv_t *packet, void *userdata) |
static void | _core_http_recv_handler (void *handle, const aiot_http_recv_t *packet, void *userdata) |
static void | _core_aiot_http_token_expired_event (core_http_handle_t *http_handle, core_http_response_t *response) |
static int32_t | _core_http_send_auth (core_http_handle_t *http_handle) |
static int32_t | _core_http_recv_auth (core_http_handle_t *http_handle, core_http_response_t *response) |
void * | aiot_http_init (void) |
创建一个HTTP上云实例 更多... | |
int32_t | aiot_http_setopt (void *handle, aiot_http_option_t option, void *data) |
设置HTTP实例参数 更多... | |
int32_t | aiot_http_auth (void *handle) |
向服务器发送认证请求, 获取token 更多... | |
int32_t | aiot_http_send (void *handle, char *topic, uint8_t *payload, uint32_t payload_len) |
上报数据到物联网平台 更多... | |
int32_t | aiot_http_recv (void *handle) |
接受HTTP应答数据, 数据会从用户设置的 aiot_http_event_handler_t 回调函数输出 更多... | |
int32_t | aiot_http_deinit (void **p_handle) |
销毁参数p_handle所指定的HTTP实例 更多... | |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
void* aiot_http_init | ( | void | ) |
创建一个HTTP上云实例
非NULL,HTTP | 实例句柄 |
NULL,初始化 | HTTP 实例失败 |
int32_t aiot_http_setopt | ( | void * | handle, |
aiot_http_option_t | option, | ||
void * | data | ||
) |
设置HTTP实例参数
[in] | handle | HTTP句柄 |
[in] | option | 配置选项, 更多信息请参考 aiot_http_option_t |
[in] | data | 配置数据, 更多信息请参考 aiot_http_option_t |
STATE_SUCCESS,成功 | |
STATE_HTTP_HANDLE_IS_NULL,HTTP句柄为NULL | |
STATE_USER_INPUT_OUT_RANGE,用户输入参数无效 | |
STATE_SYS_DEPEND_MALLOC_FAILED,内存分配失败 |
int32_t aiot_http_auth | ( | void * | handle | ) |
向服务器发送认证请求, 获取token
[in] | handle | HTTP句柄 |
STATE_SUCCESS,认证成功 | |
STATE_HTTP_HANDLE_IS_NULL,HTTP句柄为NULL | |
STATE_USER_INPUT_MISSING_PRODUCT_KEY,未设置必要选项ProductKey | |
STATE_USER_INPUT_MISSING_DEVICE_NAME,未设置必要选项DeviceName | |
STATE_USER_INPUT_MISSING_DEVICE_SECRET,未设置必要选项DeviceSecret | |
STATE_HTTP_TOKEN_LEN_ERROR,token长度错误 | |
STATE_HTTP_GET_TOKEN_FAILED,获取token失败 |
int32_t aiot_http_send | ( | void * | handle, |
char * | topic, | ||
uint8_t * | payload, | ||
uint32_t | payload_len | ||
) |
上报数据到物联网平台
[in] | handle | HTTP句柄 |
[in] | topic | 上报的目标topic, 在物联网平台控制的产品详情页面有设备的完整topic列表 |
[in] | payload | 指向上报数据的指针 |
[in] | payload_len | 上报数据的长度 |
STATE_SUCCESS,上报成功 | |
STATE_HTTP_HANDLE_IS_NULL,HTTP句柄为NULL | |
STATE_USER_INPUT_OUT_RANGE,用户输入参数无效 | |
STATE_HTTP_NOT_AUTH,设备未认证 |
int32_t aiot_http_recv | ( | void * | handle | ) |
接受HTTP应答数据, 数据会从用户设置的 aiot_http_event_handler_t 回调函数输出
服务器响应数据格式为 { "code": 0, // 业务状态码 "message": "success", // 业务信息 "info": { "messageId": 892687627916247040, } }
[in] | handle | HTTP句柄 |
>= | 0, 接受到的HTTP body数据长度 |
STATE_HTTP_HANDLE_IS_NULL,HTTP句柄为NULL | |
STATE_USER_INPUT_NULL_POINTER,用户输入参数为NULL | |
STATE_USER_INPUT_OUT_RANGE,buffer_len为0 | |
STATE_HTTP_RSP_MSG_ERROR,服务器应答消息错误 | |
STATE_SYS_DEPEND_NWK_CLOSED,网络连接已关闭 | |
STATE_SYS_DEPEND_NWK_READ_OVERTIME,网络接收超时 | |
STATE_HTTP_RECV_LINE_TOO_LONG,HTTP单行数据过长,内部无法解析 | |
STATE_HTTP_PARSE_STATUS_LINE_FAILED,无法解析状态码 | |
STATE_HTTP_GET_CONTENT_LEN_FAILED,获取Content-Length失败 |
int32_t aiot_http_deinit | ( | void ** | p_handle | ) |
销毁参数p_handle所指定的HTTP实例
[in] | p_handle | 指向HTTP句柄的指针 |
STATE_SUCCESS | 成功 |
STATE_USER_INPUT_NULL_POINTER | 参数p_handle为NULL或者p_handle指向的句柄为NULL |