Link Kit C-SDK  4.0.0
函数
aiot_http_api.c 文件参考
#include "core_http.h"
aiot_http_api.c 的引用(Include)关系图:

函数

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 void _core_aiot_http_exec_inc ( core_http_handle_t *  http_handle)
static
static void _core_aiot_http_exec_dec ( core_http_handle_t *  http_handle)
static
static void _core_http_auth_recv_handler ( void *  handle,
const aiot_http_recv_t packet,
void *  userdata 
)
static
static void _core_http_recv_handler ( void *  handle,
const aiot_http_recv_t packet,
void *  userdata 
)
static
static void _core_aiot_http_token_expired_event ( core_http_handle_t *  http_handle,
core_http_response_t *  response 
)
static
static int32_t _core_http_send_auth ( core_http_handle_t *  http_handle)
static
static int32_t _core_http_recv_auth ( core_http_handle_t *  http_handle,
core_http_response_t *  response 
)
static
void* aiot_http_init ( void  )

创建一个HTTP上云实例

返回
void*
返回值
非NULL,HTTP实例句柄
NULL,初始化HTTP 实例失败
int32_t aiot_http_setopt ( void *  handle,
aiot_http_option_t  option,
void *  data 
)

设置HTTP实例参数

参数
[in]handleHTTP句柄
[in]option配置选项, 更多信息请参考 aiot_http_option_t
[in]data配置数据, 更多信息请参考 aiot_http_option_t
返回
int32_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]handleHTTP句柄
返回
int32_t
返回值
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]handleHTTP句柄
[in]topic上报的目标topic, 在物联网平台控制的产品详情页面有设备的完整topic列表
[in]payload指向上报数据的指针
[in]payload_len上报数据的长度
返回
int32_t
返回值
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]handleHTTP句柄
返回
int32_t
返回值
>=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句柄的指针
返回
int32_t
返回值
STATE_SUCCESS成功
STATE_USER_INPUT_NULL_POINTER参数p_handle为NULL或者p_handle指向的句柄为NULL